JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Designing with Oracle Java CAPS Communication Adapters     Java CAPS Documentation
search filter icon
search icon

Document Information

Designing with Communication Adapters

Installing the DLL and JAR Files for the COM/DCOM Adapter

To Install the COM/DCOM Adapter Files

Installing the MSMQ DLL and JNI Files

To Install the MSMQ DLLs and Runtime JNI

Enabling Rollback When an MSMQ Message Fails

To Roll back an Outbound MSMQ Message

Streaming Data Between Components with the Batch Adapter

Introduction to Data Streaming

Overcoming Large-file Limitations

Using Data Streaming

Data-streaming Operation

Data Streaming Versus Payload Data Transfer

Data Streaming Scenarios

Consuming-stream Adapters

Stream-adapter Interfaces

Inbound Transfers

Outbound Transfers

Installing the MSMQ DLL and JNI Files

The MSMQ adapter installation includes two additional components (as well as the Enterprise Manager Plug-In) that must be downloaded and installed for the MSMQ Adapter:

You can download both files from the Java CAPS Suite Uploader.

To Install the MSMQ DLLs and Runtime JNI

Before You Begin

Before you can perform this task, the MSMQ Adapter must be installed. For more information, see Installing Additional Repository-Based Java CAPS Components in Installing Additional Components for Oracle Java CAPS 6.3.

  1. Start the Java CAPS Uploader and go to the Downloads tab.
  2. Download the MSMQ Adapter – Runtime win32 bridge DLLs Zip file to a local directory.
  3. Extract the downloaded file, msmqruntimejni.zip, to C:\winnt\system32 or C:Windows\system32.

    An alternative to this procedure is to extract the ZIP file elsewhere and add each DLL file to the library path using the GlassFish Admin console.

  4. Download the MSMQ Adapter – Runtime JNI file (msmqjni.jar) to JavaCAPS_Home\appserver\lib.

    Note - If you plan to run command line codegen against MSMQ projects, copy the above JAR file to the \compile\lib\ext folder first.


Enabling Rollback When an MSMQ Message Fails

You can configure the MSMQ Adapter to roll back an outbound MSMQ message when a failure occurs in the Java Collaboration Definition (for example, failure to insert a duplicate row into a database table that is defined to have unique keys), do the following:

To Roll back an Outbound MSMQ Message

  1. Select Manual as the MSMQ Connection Mode in the outbound MSMQ Adapter Connectivity Map properties .
  2. Use the following code in your Java Collaboration Definition:
    try {
        MSMQClient_1.getEwayConfiguration().setOutMSMQName( "public" );
        MSMQClient_1.getEwayConfiguration().setOutMSMQShareMode( "DENY_RECEIVE_SHARE" );
        MSMQClient_1.getEwayConfiguration().setOutMSMQReceiveActionCode
    ( "ACTION_PEEK_CURRENT" );
        MSMQClient_1.connect();
        MSMQClient_1.getMSMQMessage();
        TestDB_1.getTEST1().insert();
        TestDB_1.getTEST1().setTESTSTRING( "From JCD" );
        TestDB_1.getTEST1().insertRow();
        MSMQClient_1.getEwayConfiguration().setOutMSMQReceiveActionCode
    ( "ACTION_RECEIVE" );
        MSMQClient_1.getMSMQMessage();
        MSMQClient_1.disconnect();
    } catch ( Exception Catch ) {
        MSMQClient_1.disconnect();
    }

    The key code items are highlighted in bold. You must also use a try/catch block to catch the exception (for this example, the error is a failed insert to database).

  3. Open the queue with the following settings:
    • MSMQ Share Mode– DENY_RECEIVE_SHARE: This locks the queue so that other applications cannot open the queue in Receive mode. Until your application closes the queue, no other application can open the queue to receive the message.

    • MSMQ Receive Action Code– ACTION_PEEK_CURRENT: This opens the queue so you can “peek” (view) the message.

  4. Next, try a database update on the message you received from the queue. If this fails, move on to step 7 (close the queue instance). If that succeeds, change the adapter configuration properties to receive messages programmatically in this manner .
  5. Next, receive the message. This removes the message from queue.
  6. Disconnect from the queue.
  7. Finally, close the queue using MSMQClient_1.disconnect(). This closes the current queue instance and unlocks the queue.