Loading

「java.sql.SQLException: ORA-30006: resource busy; acquire with WAIT timeout expired」エラー

公開日: Feb 10, 2021
説明

顧客は上記のエラーコードが記載されたメールを受信します。Web-to-リードから送信されたリードのキャンペーンメンバーを作成できません。

例:

アラート: Salesforce で下記のリードの関連付けられたキャンペーンメンバーの作成時に次の問題が発生しました: 

理由: java.sql.SQLException: ORA-30006: resource busy; acquire with WAIT timeout expired 
ORA-06512: at "SLEEPY.ROWLOCK", line 48 
ORA-06512: at "SLEEPY.ROWLOCK", line 125 
ORA-06512: at "SLEEPY.ROWLOCK", line 183 
ORA-06512: at line 1

解決策

受信したエラーコードは、キャンペーンを他のプロセスで同時に操作していることを意味しています。これは実質的に、「キャンペーンオブジェクトは使用中です。後でもう一度お試しください」というエラーです。

次のような状況が発生しています。 

1.リードが Web-to-リード経由で取り込まれ、この Web-to-リードもキャンペーンに追加する必要がある。
2.キャンペーンメンバーが作成されたときにすべての積み上げ集計項目が正しく計算されるように、Salesforce でキャンペーンオブジェクトを「ロック」しようとしている (つまり、他のユーザが変更できないようにしている)。通常はロックに成功し、キャンペーンメンバーがすぐに作成されて積み上げ集計項目が計算され、問題は発生しません。

ただし、同じキャンペーンで 2 件のリードが同時に取り込まれた場合、その両方でキャンペーンを「ロック」する必要がある状態になります。どちらか一方のリードは処理を待機することになります。このシナリオでは、複数のリードが同時に取り込まれているか、他のプロセスで同時にキャンペーンを変更している (例: インポート、データローダ、手動での階層の再計算など) ため、このリードの処理の待機時間が長くなっています。ある時点で処理があきらめられ (「待機タイムアウト」)、その時点でこのメールが送信されます。

今後この問題が起こらないように、レコードの入力中はキャンペーンを更新するプロセスを最小限に抑えるようにしてください。

ナレッジ記事番号

000384488

 
読み込み中
Salesforce Help | Article