機能説明
メッセージをユニット単位に削除します。メッセージを削除するとカーソルは次のユニットの先頭メッセージに移動します。
記述形式
--------------------------------------------------------------------------------------- #include "mqdapi.h" int mqd_deletemsg(MQD_MessageQueue *queue, MQD_Environment *env) ---------------------------------------------------------------------------------------
パラメタ
mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。
例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。
MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT, MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE, MQD_ERR_NOCURSORMSG, MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG
MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT, MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR, MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE, MQD_ERR_NOCURSORMSG, MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG
復帰値
本関数の処理結果が以下の復帰値で通知されます。
正常時: 0
異常時: -1
注意事項
メッセージを削除するとき、カーソルはユニット内の先頭メッセージを指しておく必要があります。
正しく削除されなかった場合には、カーソル位置は保証されません。ただし、エラー詳細コードが“MQD_ERR_NOCURSORMSG”の場合には、カーソルは次のメッセージに位置づけられます。カーソルをメッセージキューの先頭メッセージに移動するためには、mqd_seekmsgを使用してください。
直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。
エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中に限り通知されます。
同一メッセージキューに対して複数アプリケーションが同時にメッセージを削除しようとする場合、タイミングによってはカーソルが指していたメッセージを他のアプリケーションが消してしまうという現象が発生します。その場合には、エラー詳細コード“MQD_ERR_NOCURSORMSG”または“MQD_ERR_NOMSG”が通知されます。
エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。