!--a11y-->

送信キューを持つ
qRFC:
概要
このトピックでは、アプリケーションプログラムでトランザクションの処理順序が定義されており、
1
つのトランザクションに対して複数のキューが使用されることを前提とします。
特性
送信キューを持つ
qRFC
の特性は以下のとおりです。
RFC
により、送信システム側で整流化が強制的に実行されます。
対象システムには、送信システムでの整流化に関する情報がありません。
これにより、
R/3
対象システムとの通信が可能になります
(
リリース
3.0
の時点
)
。
qRFC
は、
tRFC
を拡張したものです。
関連するキューで
(
複数のアプリケーションプログラムで定義されている順序に基づいて
)
先行するトランザクションがない場合にのみ
LUW (
トランザクション
)
を転送します。
さらに、
qRFC
トランザクションの実行後、システムは待機中の
qRFC
トランザクションを順序に従って自動的に実行しようとします。
キューを管理するために、各
qRFC
トランザクションのキュー名とキューカウンタが必要になります。
整流化される各
tRFC
コールは、キュー名に割り当てられます。このキュー名は、アプリケーションによって設定されます。
アプリケーションは、汎用モジュール
TRFC_SET_QUEUE_NAME
コールによりキュー名を受け渡します。
この汎用モジュールは、整流化される各
tRFC
コールの直前に呼び出されます。
整流化のプログラミングも参照してください。
キュー名は、最大
24
バイト長のテキストです。
使用できるテキストについて特に制限はありませんが、
* (
アスタリスク
)
は使用しないでください。

他のアプリケーションのキュー名と重複することを防ぐため、キュー名はアプリケーションのイニシャルから始まるようにしてください
(SFA_...
または
APO_...
など
)
。
- これは論理キューであるため、キューの設定はありません。
それぞれのキューに対する個別のテーブルはありません。
R/3
システムでは、送信キューに対して
1
つのテーブルが存在します。
キューテーブル
TRFCQOUT
には、関連するすべての
LUW
のキューに対応するエントリが格納されています。
tRFC
コールが
複数の宛先に分散される場合は、
tRFC
コールは宛先別にまとめられ、各コールが個別に処理されます。
これにより、依然の
t
RFC
と同様に
1
つの
LUW
の中に下位
LUW
が複数生成されます。
このとき、下位
LUW
の順序が維持されるという保証はありません。最終的にはすべての
LUW
が転送されるということだけは確実です。
以前の
tRFC
と対照的に、下位
LUW
はそれぞれ各自のトランザクション
ID
を受信します。これにより、キュー処理が容易になります。
AS SEPARATE UNIT
が指定されているかどうかに関係なく、
1
つの
LUW
の中の整流化される
tRFC
コールの順序は保証されます。これは、
tRFC
コールがさまざまなキューに割り当てられている場合にも保証されます。
COMMIT WORK
の送信時に、キューの
LUW
処理順序の基準として機能するカウンタが決定します。
アプリケーションの面から相互に依存している
2
つの
LUW
の場合、
1
番目の
LUW
に対する
COMMIT WORK
が完了してから、
2
番目の
LUW
に対する
COMMIT WORK
を実行することができます。
"
混合モード
"
がサポートされています。
AS SEPARATE UNIT
を使用するかどうかに関係なく、
1
つの
LUW
に、標準の
tRFC
コールと整流化される
tRFC
とを混在させることができます。
tRFC
コールの順序は保証されます。
"
混合モード
"
での
LUW
の
"
標準の
" tRFC
コールと、整流化される
tRFC
コールのうち、同じ宛先を共有するコールが、割当に基づいて
1
つの下位
LUW
を構成します。
1
つの
LUW
において、特定の宛先に対して
qRFC
コールが定義されていない場合、
"
標準の
" tRFC
コールによって
1
つの下位
LUW
が構成されます。

以前の
tRFC
では、異なる宛先を持つすべてのコールに対して、
1
つの共通トランザクション
ID
が割り当てられています。ただし、これらのコールはそれぞれ異なる
下位
LUW
に内部で割り当てられています。
新しい
tRFC
では、キュー処理を向上させるため、同じ宛先を持つ
tRFC/qRFC
コールのグループは、グループごとにそれぞれのトランザクション
ID
を受信します。
互換性の理由から、
LUW
内で
"
混合モード
"
を使用し、最初のコールが
tRFC
コールのアプリケーションでは、最初に汎用モジュール
TRFC_QUEUE_INITIALIZE
を呼び出す必要があります。
混合モードの使用法も参照してください。
"
混合モード
"
の
LUW
の
"
個別の標準
" tRFC
コール
(
オプション
AS SEPARATE UNIT
が指定されている
)
は、従来と同様に処理されます
(
個別のトランザクション
ID)
。
"
個別の
" tRFC
コールは、実際の
LUW
には依存せずに、キューに従って処理されます。
tRFC
と比較した場合の送信キューを持つ
qRFC
の使用効果と利点は、整流化による送信システムと対象システムにかかる負荷が最小限に抑えられる点です
(
並列化の程度が低いため
)
。
ただし、キュー名を不注意に選択してしまう
(
使用する名称が多すぎる
)
と、この利点が損なわれることがあります。
これは、整流化の増大によるパフォーマンスの向上と、並列化の増大による処理の高速化のどちらをとるかという典型的なジレンマです。
したがって、各アプリケーションでは、キュー名を有効に定義する方法と、キュー名を個別のファンクションコールへ割り当てる方法を慎重に評価する必要があります。
発生する可能性のある問題
次に示す整流化に関する一般的な問題に注意してください。
たとえば、ネットワーク
/
通信上の問題が原因でキュー内の
1
番目の
LUW
を実行できなかった場合には、このキューが保留になるだけでなく、このキューに依存するその他のキューもすべて保留になります。
その結果生じる
"
処理混雑
(
ジャム
)"
が原因で、さらにデータベースの問題が発生する可能性があります。
ただし、通信上の問題が解決すると、直ちにすべてのトランザクションとキューが
1
つずつ自動的に処理されます。
