Фрагментация файлов

Если адаптер регулярно извлекает большие файлы из информационной файловой системы предприятия, целесообразно воспользоваться специальной функцией адаптора, позволяющей разбивать файлы на меньшие фрагменты. Если эта функция включена, файлы событий будут разбиваться на фрагменты, которые будут добавляться в конечню точку как независимые объекты. Восстановление исходного файла из фрагментов в конечной точке не производится, однако в бизнес-схеме адаптер предоставляет информацию, необходимую для такого восстановления.

Разбиение файлов производится на основе значения, заданного для свойства Split Criteria. Значение этого свойства может быть произвольным. Разбиение файлов - это необязательная возможность. Ее можно отключить, оставив значения свойств SplitCriteria и SplittingFunctionClassName пустыми при настройке спецификации активации в мастере обнаружения служб предприятия или присвоив свойству SplitCriteria нулевое значение.
Прим.: Если EventContentType равно null, то свойство SplitCriteria настраивается автоматически на разбиение файлов по размеру.

Разбиение файлов по ограничителю

Если в качестве разделителей в бизнес-объекте используются та кие символы, как запятая (,), точка с запятой (;), кавычки ( ", ' ), фигурные скобки ({}) или наклонная черта ( / \ ), адаптер может разбивать файлы на меньшие фрагменты по этим разделителям. Полученные в результате фрагменты пересылаются на сервер независимо, а потом из них восстанавливается исхо дный файл с помощью функции восстановления последовательности событий сервера обработки WebSphere. Этот процесс называется разбиением файла по разделителям. Его можно включить с помощью свойства спецификации активации SplitCriteria.

Важно помнить, что при таком разбиении файлов событий на фрагменты каждый фрагмент представляет собой бизнес-объект. Это означает, что PollQuantity и число бизнес-объектов, отправленных в конечную точку, могут отличаться. Если включено разбиение файла по ограничителю, то в свойстве PollQuantity указывается число файлов событий в хранилище событий. Кроме того, в свойстве спецификации активации Splitting Function Class Name указывается класс, с помощью которого разбивается файл событий.

Чтобы проиллюстрировать разбиение файлов по разделителям с помощью свойства PollQuantity, рассмотрим два файла событий. Пусть первый файл событий содержит один бизнес-объект, а второй - два бизнес-объекта. Если значение свойства PollQuantity равно 2, то в первом цикле опроса будет отправлен первый бизнес-объект из первого файла событий и первый бизнес-объект из второго файла событий. Второй бизнес-объект из второго файла будет отправлен во втором цикле опроса.

Для ограничителей должны выполняться следующие правила:
  • Все новые строки в ограничителе указываются как \n. Адаптер преобразует \n в символ новой строки для платформы.
  • Если указывается несколько ограничителей, их необходимо разделять точкой с запятой (;). Если точка с запятой (;) - это часть ограничителя, то она должна предваряться косой чертой: \;. Например, ограничитель ##\;## будет обрабатываться как ##;##, то есть точка с запятой (;) будет частью ограничителя.
  • В ограничителе можно указать двойную точку с запятой (;;) для содержимого, которое будет пропускаться между ограничителями. Например, если файл событий содержит указанный ниже бизнес-объект, а ограничитель - это ##;;$$, то в

    Name=Smith

    Company=IBM

    ##этот текст будет пропущен адаптером$$

    Адаптер будет считать ограничителем ##$$ и пропустит часть "этот текст будет пропущен адаптером".

  • Ограничитель может быть любым. Несколько ограничителей могут разделяться символами \n и точкой с запятой (;). Использование \n и ; в ограничителе необязательно. \n используется только в том случае, если при разбиении содержимого файла необходимо учитывать перенос строки. Ниже перечислены возможные ограничители:
    • ####;\n;\n
    • ####;$$$$;\n;####
    • %%%%;$$$$$;#####
    • \n;\n;$$$$
    • ####\;####;\n;$$$$$
    • \n;\n;\n
    • ####;;$$$$
  • Если ограничитель расположен в конце файла, то SplitCriteria принимает END_OF_FILE, что означает, что бизнес-объект является фактическим концом файла.

Разбиение файлов по размеру

Разбиение файлов по размеру выполняется на основе свойства SplitCriteria. Если размер файла превышает значение свойства SplitCriteria, то файл разбивается на несколько фрагментов, каждый из которых отправляется в конечную точку отдельно. В противном случае файл событий отправляется в конечную точку целиком. Важно помнить, что при разбиении файлов событий на фрагменты каждый фрагмент представляет собой бизнес-объект. Это означает, что PollQuantity и число бизнес-объектов, отправленных в конечную точку, могут отличаться. Хотя опрос ведется по значению PollQuantity, адаптер фактически обрабатывает бизнес-объекты из файлов. Например, если файл событий разбит на три части, то опрошен будет один файл, а в конечной точке будет получено три бизнес-объекта (поскольку каждый фрагмент представляет собой бизнес-объект).

В конечной точке адаптер не собирает фрагменты в один файл. Эту функцию выполняет компонент обработки последовательности событий сервера WebSphere Process Server. Однако адаптер для простых файлов передает в WebSphere Process Server информацию о фрагментах для сборки их в файл. Информация о фрагменте передается в свойстве chunkFileName оболочечного бизнес-объекта. Она включает данные о размере фрагмента в байтах и ИД события. ИД события для фрагмента указывается в следующем формате: eventFileLocation_/_timestampStr_/_MofN, где M - это номер фрагмента и N - общее число фрагментов. Пример ИД события: C:\flatfile\eventdir\eventfile.in_/_2005_01_10_10_17_49_864_/_3of5, где timestampStr указывается в формате: год_месяц_день_час_мин_сек_миллисек.


Условия использования |


(c) Copyright IBM Corporation 2005, 2006.
Данная справочная система Information Center использует технологию Eclipse (http://www.eclipse.org)