CICS 環境の Java プログラムは、TCP/IP ソケットを開いて外部プロセスと通信できます。 Java プログラムをゲートウェイとして使用し、他の言語の CICS プログラムでは利用できない可能性がある他のエンタープライズ・アプリケーションに接続できます。例えば、リモートのサーブレットまたはデータベースと通信する Java プログラムを記述できます。
一部の場合では、この接続が CICS と統合され、分散トランザクションや ID の伝搬など、企業のサービス品質を提供します。他の場合には、CICS が提供する分散トランザクションやその他のサービスを使用せずに接続を使用できます。 必要とする接続のタイプに応じて、CICS によってネイティブにサポートされていないエンタープライズ・アプリケーションとの接続を可能にするサード・パーティーのベンダー製品を利用できる場合があります。
一般的に、CICS 環境の JVM は、機能においてバッチ・モードの JVM と似ています。 バッチ・モードの JVM は、CICS 環境の外部のスタンドアロン・プロセスとして実行され、通常、UNIX システム・サービスのコマンド行から、または JCL ジョブを使用して開始されます。バッチ・モードで動作できるほとんどのアプリケーションは、CICS の JVM で同様に実行できます。例えば、サード・パーティーの JDBC ドライバーを使用して IBM 以外のデータベースと通信するバッチ・モードの Java アプリケーションを記述する場合、同じアプリケーションが CICS の JVM でも動作します。 CICS の JVM での IBM 以外の JDBC ドライバーなど、ベンダー提供のコードを使用する場合、CICS の JVM でのコードの実行がサポートされているかどうかを判別するには、ベンダーにお問い合わせください。
一部のバッチ・モードのアプリケーションは、CICS が JVM を再利用する方法が原因で、CICS の JVM でホストされているときに異なる振る舞いをする場合があります。 静的変数に格納されるデータは、JVM の使用では持続します。 CICS での Java アプリケーションの振る舞いについて詳しくは、CICS の Java ランタイム環境を参照してください。
CICS 環境の JVM で実行されるバッチ・モードのアプリケーションは、通常、CICS の機能を利用しません。 例えば、CICS の Java プログラムがサード・パーティーの JDBC ドライバーを使用して IBM 以外のデータベースのレコードを更新する場合、CICS はこのアクティビティーを認識せず、現在の CICS トランザクションに更新を含めようとしません。