キューからメッセージを消費し、いくつかの URL に HTTP 呼び出しを送信する Java クラスがあります。私はGoogleとstackoverflowでいくつかの検索を行いました(問題について言及しているソースを見逃していたら本当に申し訳ありません)が、 setRollbackOnly 呼び出しに関する詳細は何も見つかりませんでした.
私の質問は...ロールバックした場合、キューから消費されたメッセージは残りのキューをブロックし、正常に処理されるか、現在のキューの最後に再キューされるまでループしますか?
キューから消費して HTTP 呼び出しを送信するために使用するコードは以下のとおりで、アプリケーション全体が Glassfish サーバーで実行されています。
public クラス RequestSenderBean は MessageListener を実装します
{
@リソース
プライベート MessageDrivenContext mdbContext;
public RequestSenderBean(){}
public void onMessage(最終メッセージ メッセージ)
{
試す
{
if(ObjectMessage のメッセージ インスタンス)
{
文字列 responseOfCall=sendHttpPost(URL, PARAMS_FROM_MESSAGE);
if(responseOfCall.startsWith("成功"))
{
//すべて問題ありません。いくつかのことを行ってください
}
else if(responseOfCall.startsWith("Failure"))
{
//失敗、他のことをする
}
}
catch (最終的な例外 e)
{
e.printStackTrace();
mdbContext.setRollbackOnly();
}
}
}