でクエリキャンセルすることができません:次のクエリを使用して私はDB2で次のストアドプロシージャ持つDB2
CREATE OR REPLACE PROCEDURE CANCEL_ACTIVITY (IN application_handle INTEGER)
LANGUAGE SQL
BEGIN
DECLARE UOW_ID INTEGER;
DECLARE ACTIVITY_ID INTEGER;
FOR v AS cur1 CURSOR FOR
SELECT UOW_ID, ACTIVITY_ID FROM TABLE(SYSPROC.MON_GET_ACTIVITY(application_handle, -1))
DO
CALL WLM_CANCEL_ACTIVITY(application_handle, v.uow_id, v.activity_id);
END FOR ;
END
を、私は私の接続IDを見つけることができています:
返しますSELECT MON_GET_APPLICATION_HANDLE() from SYSIBM.SYSDUMMY1
36547
のような値です。だから私は、私はちょうどそうのように作成したプロシージャを呼び出す:
CALL CANCEL_ACTIVITY(36547);
その結果、私は次を得る:
しかし、私は再び接続IDを取得するクエリを実行した場合、それその接続IDがなくなったようには見えません。私はまだ36547
値を返します。
このクエリキャンセルがまったく機能しているかどうかはかなりわかります。コードを実行しているさまざまな環境でさまざまな種類のエラーが発生しています。
SQLクエリとして実行しているとき、上記のエラーコード/応答が表示されます。私のコードが私のウェブページで実行されているとき、私は次のエラーを受け取ります:
Cannot cancel queries: Java::ComIbmDb2JccAm::SqlDataException: DB2 SQL Error: SQLCODE=-802, SQLSTATE=22003, SQLERRMC=null, DRIVER=4.16.53
私は間違って何をしていますか?
こんにちは@data_henrik - 説明をいただきありがとうございます。これは、アクティビティをキャンセルする完全なクエリですか? 'CALL WLM_CANCEL_ACTIVITY(1,2,5) ' – theGreenCabbage
はい、アプリケーションハンドル/ UOW識別子/アクティビティID。 –
あなたが私の手続きをチェックすると、それは私がやっていることです、いいえ? 'CALL WLM_CANCEL_ACTIVITY(..) 'を使用します。 – theGreenCabbage