DCOM Mode vs. Native Mode

You have the option of running J-Integra® in one of two different modes - DCOM mode or native mode.

DCOM Mode

In this mode J-Integra® uses a pure Java implementation of the DCOM protocol to talk to COM components. No native code is required (i.e. no DLLs). You must run in DCOM mode if you are running J-Integra® on a non-Windows platform.

* In DCOM mode, the DCOM protocol is always used for communication between the Java and COM components. It does not matter if the Java application and COM component both reside locally or if they are located on separate machines. When the client and server components are both COM-based the DCOM protocol is only used for communication when the components reside on different machines. If both components reside on the same machine, the standard COM protocol is used instead.

To run J-Integra® in DCOM mode, you don't have to do anything! DCOM mode is the default mode for J-Integra®.

Native Mode

In this mode J-Integra® uses native code to talk to COM components. The jintegra.jar runtime talks to a J-Integra® DLL called ntvinv.dll (which is located in the jintegra\bin directory). In turn, ntvinv makes calls to COM components using the standard OLE automation DLLs that come with Windows.

To run J-Integra® in native mode, you must specify the J-Integra® property JINTEGRA_NATIVE_MODE when the JVM is started up. You can set this property by specifying it on the command line when you launch the JVM or you can set it in your Java code.

If Java objects and COM components are all on local machine, native mode runs faster than DCOM mode. If Java objects and COM components are on different computers, the performance difference is trivial.

J-Integra® automatically runs in native mode if an ActiveX Control is embedded in a Java frame.

For more information on native mode, please see Introduction to J-Integra® Native Mode.

Which Mode is In Use?

You can use the code snippet below to determine which mode J-Integra® is running in.

If native mode is in use, you will also see the following line printed in the jintegra.log file...