2

SAP .NET コネクタに問題があります

SAP BAPI プロシージャに接続して SAP データベースから結果を取得する Web アプリケーション (ASP.NET、C#) を構築しました。

SAP BAPI プロシージャに接続し、Web アプリケーションの結果もフェッチします。

私の問題は、最初の試行では結果を取得するのに 25 ~ 30 秒かかりますが、2 回目の試行以降はすぐに結果が取得されることです。

最初の試行で結果を取得するのに時間がかかる理由が正確にはわかりません。

誰かがこれで私を助けることができますか?

4

3 に答える 3

0

これは一般的な動作であり、実際にはSAPNCoがBAPIのメタデータを初めて取得することによって発生します。

メタデータを取得すると、それ以降の呼び出しのためにキャッシュします。これは迅速な作業です。

BAPI_PO_CREATE1への最初の呼び出し時間は約10秒で、その後の呼び出しは約1秒です。

于 2012-10-12T12:28:47.960 に答える
0

この遅延も見られますが、SQL との関係ではなく、コネクタを使用して SAP との接続を確立する時点であることは間違いありません。

私は、最初の試行で、コネクタが接続を確立し、認証し、独自の接続プールを初期化する必要があるためだと理論付けています。

もちろん、SAPボックスの負荷の程度と、Webサーバーとの相対的な位置によって異なりますが、私が見つけた完全な回避策はないようです.

あなたの最善の行動は、接続を一度確立してから、できるだけ再利用することです。

于 2012-09-19T09:36:46.230 に答える
0

これが開かれてから長い時間が経ちましたが、解決できます (何をすべきかを知っていれば、かなり簡単です)。

接続が確立されるまでに 10 秒以上の遅延が発生するという、まったく同じ問題がありました。ターゲット サーバーの SM21 トランザクション内では、クライアントが応答を受け取るまで接続が表示されませんでした。

ネットワーク トレースをキャプチャしたところ、実際にゲートウェイが要求と応答の間に時間を取っていることがわかりました。サーバーの dev_rd ログ ファイル (ゲートウェイ デバッグ ログ) に、(最初の遅延の後) 非常に明白なエントリが表示されました。

Fri Aug  3 07:55:20:963 2018
NiHLGetHostName: to get [private-ip] failed in 12004ms (tl=2000ms; MT; UC)
*** ERROR => NiHLGetHostName: NiPGetHostByAddr failed (rc=-1) [nixxhl.cpp   514]

その IP の DNS 回答を取得しようとしても、nslookup ツールで失敗しました。次のリクエストは、ゲートウェイがネガティブ ヒットをキャッシュしているように見えるため、はるかに高速ですが、エントリがタイムアウトするとすぐに、再び遅延が発生します。

したがって:

  1. ゲートウェイがタイムアウトになる必要がないように、DNS サーバーを構成します(逆ルックアップを成功させるために in-addr.arpa を使用してプライベート ゾーンを追加します)。

または(さらに悪いことに、とにかく逆引き参照ゾーンを設定する必要があるため)

  1. rdisp/reverse_name_lookup パラメーターを介して逆引き参照を永続的に非アクティブ化するには、SAP ノート 1055602 に従います。
于 2018-08-03T07:03:48.650 に答える