Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


7.11 アプリケーション実装時の制限事項

この節では,CJMSプロバイダを使用してアプリケーションを実装する際の制限事項について説明します。

CJMSプロバイダはJMS1.1仕様に準拠していますが,一部のインタフェースおよびメソッドは使用できません。アプリケーションで使用できないインタフェースまたはメソッドを使用すると,JMSException例外がスローされるおそれがあります。

使用できないインタフェースを次に示します。

また,次の表に示すインタフェースの一部のメソッドは,アプリケーションクライアントコンテナで実行するアプリケーションで使用するメソッドです。CJMSプロバイダでは使用できません。

CJMSプロバイダで使用できないメソッドをインタフェースごとに次の表に示します。

表7‒9 CJMSプロバイダで使用できないメソッド

インタフェース

使用できないメソッド

javax.jms.Session

  • setMessageListener(MessageListener listener)

  • getMessageListener()

  • run()

javax.jms.Connection

  • setExceptionListener(ExceptionListener listener)

  • stop()

  • setClientID(String clientID)

  • トランザクション処理されるSessionオブジェクトを作成するメソッド

    (例えば,createSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。

javax.jms.QueueConnection

  • createConnectionConsumer(Queue queue, String messageSelector, ServerSessionPool sessionPool, int maxMessages)

  • トランザクション処理されるQueueSessionオブジェクトを作成するメソッド

    (例えば,createQueueSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。

javax.jms.TopicConnection

  • createConnectionConsumer(Topic topic, String messageSelector, ServerSessionPool sessionPool, int maxMessages)

  • createDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages)

  • トランザクション処理されるTopicSessionオブジェクトを作成するメソッド

    (例えば,createTopicSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。

また,WebコンテナまたはEJBコンテナで動作するアプリケーションのコンポーネントでは,一つの接続で複数のアクティブなセッションオブジェクトを作成してはいけません。すでにアクティブなセッションオブジェクトがある場合に,createSessionメソッドでオブジェクトを作成しようとした場合,JMSException例外がスローされることがあります。