Developing Apama Applications > Developing Adapters > Apama File Adapter > Opening files for writing > Opening files for writing with parallel processing applications
Opening files for writing with parallel processing applications
If your Apama application implements parallel processing, you may want to increase parallelism by processing the incoming events from the File adapter in a separate, private, context, rather than doing everything in the correlator’s main context. To request that events from the File adapter are sent to the private context your monitor is running in, the monitor should open the file using the com.apama.file.OpenFileForWritingToContext event instead of OpenFileForWriting. The OpenFileForWritingToContext event has a field that contains a standard OpenFileForWriting event (see Opening files for writing), in addition to a field specifying the context that file adapter events should go to for processing, (which is usually the context the monitor itself is running in, context.current()), and the name of the channel the File adapter is using. When using the OpenFileForWritingToContext event, the OpenFileForWritingToContext event and all other File adapter events must not be emitted directly to the adapter, but rather enqueued to the correlator’s main context, where the adapter service monitor runs. The File adapter’s service monitor is responsible for emitting the events that are enqueued from other contexts to the File adapter, and for enqueuing the events received from the File adapter to whichever context should process them (as specified in the OpenFileForWritingToContext event).
The OpenFileForWritingToContext event is defined as follows

event OpenFileForWritingToContext
{
context instanceContext;
string fileChannel;
OpenFileForWriting fileEvent;
}
Using the OpenFileForWritingToContext event is similar to using the OpenFileForReadingToContext event. See Opening files for reading with parallel processing applications for an example use of the OpenFileForReadingToContext event.
Copyright © Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its Subsidiaries and or/its Affiliates and/or their licensors.
Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG.