4.6.5.3 通知をサブスクライブ解除する

イベント通知または非請求メッセージのいずれか、または両方のサブスクライブを停止するには、JoltUserEventのunsubscribeメソッドを使用する必要があります。Joltでは、unsubscribeメソッドを使用して非請求メッセージの受信を停止しても、すべてのサブスクリプション通知が停止されるわけではありません。この点がOracle Tuxedoと異なります。Oracle Tuxedoでは、NULLハンドラを指定してtpsetunsol()を呼び出すと、すべてのサブスクリプション通知が停止します。

イベントの通知をサブスクライブ解除する場合、次の点に注意してください。

  • クライアントが単一のイベントをサブスクライブする場合に通知をサブスクライブ解除すると、イベント通知と非請求メッセージが両方共受信されなくなります。
  • クライアントが複数のイベントをサブスクライブしている場合は、サブスクライブ解除対象のサブスクリプションだけが利用できなくなります。非請求メッセージは、引き続き受信されます。最後のサブスクリプションが停止されると、非請求メッセージの受信も停止されます。
  • クライアントが非請求メッセージとイベント通知の両方をサブスクライブしている場合は、非請求メッセージだけをサブスクライブ解除しても、どちらの通知も停止されません。さらに、このサブスクライブ解除では、例外がスローされません。ただし、Jolt API側では非請求メッセージのサブスクライブ解除を記憶しているため、残りのイベント通知をサブスクライブ解除すると、イベント通知と非請求メッセージの両方が利用できなくなります。

クライアント・アプリケーションで非請求メッセージの受信を停止したい場合は、すべてのイベントをサブスクライブ解除する必要があります。