---
schema_version: "1"
id: 054dec9d50d2b9e3973e5a518d5402138b08aaf33a7a3992b0ed9ad8d6c7bff7
title: SAP Connector のトラブルシューティング
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/sap-connector/5.1/sap-connector-troubleshooting.md
canonical_url: https://docs.mulesoft.com/jp/sap-connector/5.1/sap-connector-troubleshooting
source_site: docs.mulesoft.com
content_type: documentation
content_hash: ac27f4e9c0a1f00c81ae236a734e7fcab29b15fe2db1ded4c52685ef487a87a5
description: MuleSoft Documentation Site
release: "5.1"
latest: false
---
# SAP Connector のトラブルシューティング

このページには、SAP 用 Anypoint Connector (SAP Connector) の一般的なトラブルシューティングに関する提案が記載されています。

## [](#common-throws)一般的なスロー

- SAP:CONNECTIVITY
    
    A connection cannot be established. (接続を確立できません。)
- SAP:INVALID\_CACHE
    
    The cache used internally by the JCo library is corrupted or can’t be read. (JCo ライブラリで内部的に使用されているキャッシュが破損しているか、読み取ることができません。)
- SAP:INVALID\_INPUT
    
    User input cannot be parsed or is incorrect. (ユーザー入力を解析できないか、ユーザー入力が正しくありません。)
- SAP:METADATA\_UNAVAILABLE
    
    The metadata for an IDoc segment is unavailable. (IDoc セグメントのメタデータを利用できません。)
- SAP:NOT\_FOUND
    
    A function or IDoc template cannot be found or retrieved. (関数または IDoc テンプレートが見つからないか、取得できません。)
- SAP:NOT\_SUPPORTED
    
    An action occurs that is not supported by any JCo handler. (JCo ハンドラーでサポートされていないアクションが実行されました。)
- SAP:PARSING
    
    The JCo library has a parsing issue or the connector cannot convert XML to a BAPI function or an IDoc. (JCo ライブラリに解析の問題があるか、コネクタが XML を BAPI 関数または IDoc に変換できません。)
- SAP:RETRY\_EXHAUSTED
    
    Execution block retries are exhausted. (実行ブロックの再試行が終了しました。)
- SAP:SYSTEM\_BUSY
    
    The remote ABAP system is too busy to handle a request. (リモートの ABAP システムが混雑しているため要求を処理できません。)
- SAP:TIMEOUT
    
    A timeout exception happens inside the JCo library. (JCo ライブラリ内でタイムアウト例外が発生しました。)

## [](#common-solutions)一般的な解決策

### [](#check-log-files)ログファイルを確認する

Mule では (アプリケーションごとに) 次のログファイルが ​`$MULE_HOME\logs`​ ディレクトリに保存されます。

- `mule.log`  
    デフォルトの Mule ログファイル
- `mule-app-YOUR_APP_NAME.log`  
    アプリケーションごとのログファイル

### [](#enable-jco-trace)JCo トレースを有効にする

JCo トレースは Mule の外部から有効にできます。JCo トレースは次の Java 起動環境プロパティを受け入れます。

- `-Djco.trace_level=N`  
    N は 0 ～ 10 で、10 は最も詳細なトレース
- `-Djco.trace_path=<PATH>`  
    省略可能

JCo は ​`0`​ (デフォルト) ～ ​`10`​ のトレースレベルをサポートします。トレースレベルが高いほど、トレースデータの量が増加します。各トレースレベルには、下位のトレースレベルのすべてのトレースデータも含まれます。多くの JCo コールと転送されるコンテンツで高い JCo トレースレベルを使用する場合は、十分なディスク容量が使用可能であることを確認してください。

コネクタレベルでトレースを有効にする手順は、次のとおりです。

1. 属性 ​`jcoTrace`​ を ​`true`​ に設定するか、値 ​`1`​ の拡張 JCo プロパティ ​`jco.client.trace`​ または ​`jco.server.trace`​ を指定します。
2. Mule の起動時に ​`-Djco.trace_level=N`​ の値を指定します。
    
    <table class="tableblock frame-all grid-all fit-content">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-center valign-top">トレースレベル</th>
<th class="tableblock halign-center valign-top">AS Java セキュリティレベル</th>
<th class="tableblock halign-left valign-top">JCo 3 トレースコンテンツ</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>0</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>NONE</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">トレースなし</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>1</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>ERROR</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">JCo バージョンとランタイム環境情報、およびアプリケーションエラーを含まない JCo 内部エラーと例外</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>2</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>WARNING</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">JCo 警告メッセージ (ABAP 以外のシステム例外など)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>3</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>INFO</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">JCo 情報メッセージ (ABAP 例外など)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>4</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>PATH</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RFC コールおよび重要な公開 API コール</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>5</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">重要な内部ミドルウェアコール<br>
コードページ情報</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>6</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">接続属性<br>
ASCII コンテンツデータ (構造の最初の 1000 文字またはテーブルの最初の 5 行)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>7</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RFC メタデータ (名前、型、オフセット、長さ、インポートおよびエクスポートオプション、およびコンテンツデータのその他の 16 進数値を含む)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>8</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code>​</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">完全なコンテンツデータダンプ (文字または行の制限なし)<br>
コール元のスタックトレース情報 (たとえば、​<code>getClient()</code>​ はアプリケーションを識別します)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>9</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">追加情報なし (将来の使用のために予約済み)</p></td>
</tr>
<tr>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>10</code></p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock"><code>DEBUG</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">追加情報なし (将来の使用のために予約済み)</p></td>
</tr>
</tbody>
</table>
3. 必要に応じて、​`-Djco.trace_path=<PATH>`​ の値を指定します。 通常、これは、トレースファイルが保存されている既存のディレクトリへの完全パスですが、他の特別な値を適用できます。
    
    - `stdout`  
        JCo トレース情報は標準​**出力**​ストリームに送信されます。
    - `stderr`  
        JCo トレース情報は標準​**エラー**​ストリームに送信されます。

`-Djco.trace_path`​ を設定しない場合、トレースファイルは作業ディレクトリに保存されます。Mule スタンドアロンインスタンスの場合、通常は ​`$MULE_HOME/bin`​ フォルダーになります。

## [](#common-errors)一般的なエラー

### [](#error-jco-missing-libs)JCo ライブラリの欠落エラー

通常、1 つ以上の必須の SAP JCo 連動関係を読み込まずに接続のテストや Mule アプリケーションのデプロイを実行した場合にこのエラーが発生します。

- JCo ネイティブライブラリの欠落
    
    ```text
    java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
    ```
    
    ![SAP エラー、JCo ネイティブライブラリ](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-error-jco-libs1.png)
- JCo JAR の欠落
    
    java.lang.NoClassDefFoundError: com/sap/conn/jco/JCoTraceListener
    
    ![SAP エラー、JCo JAR](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-error-jco-libs2.png)
- IDoc JAR の欠落
    
    java.lang.NoClassDefFoundError: com/sap/conn/idoc/IDocMetaDataUnavailableException
    
    ![SAP エラー、IDoc JAR](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-error-jco-libs3.png)

このエラーを解決する手順は、次のとおりです。

1. **\[Required dependencies (必須の連動関係)\]**​ セクションで、赤い感嘆符アイコンが付いている連動関係の横にある ​**\[Add File (ファイルを追加)\]**​ ボタンをクリックします。
2. 連動関係を参照し、適切なファイルを選択します。  
    欠落している連動関係がプロジェクトのクラスパスに自動的に追加されます。

<table><tbody><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><strong>Package Explorer</strong>​ で、プロジェクトを右クリックし、​<strong>[Build Path (ビルドパス)] &gt; [Configure Build Path (ビルドパスを設定)]</strong>​ に移動すると、プロジェクトのビルドパス内のライブラリが表示されます。</td></tr></tbody></table>

### [](#error-jco-classloader-conflicts)JCo クラスローダーの競合

ネイティブライブラリをグローバル設定から読み込むと、ファイルのコピーが ​`$YOUR_APP/src/main/app/lib`​ 内に配置されますが、ソースファイルは削除されません。そのため、接続のテストやアプリケーションのデプロイを実行するときに、JCo JAR ファイルと同じディレクトリを共有していると、次の例外が発生します。

```text
java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.UnsatisfiedLinkError: Native Library /home/mule/sap-errors/lib/jco/libsapjco3.so already loaded in another classloader
```

![SAP エラー、JCo クラスローダーフォルダー](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-error-jco-classloader-folder.png)

このエラーを解決する手順は、次のとおりです。

次のいずれかの解決策を選択します。最初の解決策は最も簡単ですが、2 番目の解決策をベストプラクティスとしてお勧めします。

- JCo JAR ファイルが存在するディレクトリから​_重複する_​ネイティブライブラリファイルを削除します。

![SAP エラー、JCo クラスローダーの修正](/mulesoft/current/ja-jp/sap-connector/5.1/_images/sap-error-jco-classloader-fix.png)

- ダイナミックリンクライブラリを保持するように環境変数 ​`LD_LIBRARY_PATH`​ を設定し、同じ Mule Runtime サーバー内にデプロイされている複数のアプリケーションでその環境変数を共有します。

### [](#error-jco-version-conflicts)JCo バージョンの競合

次のエラーの最も多い原因は、異なるバージョンのネイティブライブラリと JCo JAR ファイルが使用されていることです。

```text
java.lang.ExceptionInInitializerError: Native library sapjco3 is too old. Found library System-defined path to libsapjco3.so has version "720.612", but required is at least version "720.713".
```

このエラーを解決するには、次の要件が満たされていることを確認します。

- 64 ビットモードで動作する JVM では 64 ビット JCo が必要で、32 ビットモードで動作する JVM では 32 ビット JCo が必要です。
- Microsoft Windows では、JCo には Microsoft Visual Studio 2005 C/C++ ランタイムライブラリが必要です。
- `sapjco.jar`​ と、​`sapjco3.dll`​、​`sapjco3.so`​、および ​`sapjco3.jnilib`​ のいずれかの両方が​**同じ JCo パッケージ**​から取得されている必要があります。

使用している JCo ライブラリのバージョンを確認するには、次のいずれかを実行します。

- Windows (UI):
    
    1. `sapjco3.jar`​ ファイルが配置されているディレクトリに移動します。
    2. `sapjco3.jar`​ ファイルを右クリックします。
    3. コンテキストメニューから ​**\[プログラムから開く\]**​ を選択します。
    4. **\[Java 2 Platform Standard Edition\]**​ バイナリをクリックします。
    5. 表示された JCo ダイアログに表示されている情報を確認します。
- Mac:
    
    1. ターミナルウィンドウを開きます。
    2. `sapjco3.jar`​ ファイルが配置されているディレクトリに移動します。
    3. コマンド ​`java -jar sapjco3.jar -version`​ を実行します。
    4. 表示された JCo ダイアログに表示されている情報を確認します。

### [](#error-jco-renaming-conflicts)JCo 名前変更の競合

JCo 3.0.11 以降では、SAP JCo ライブラリファイルは JCo により認識されないため、名前変更できず、次のエラーが表示されます。

```text
java.lang.ExceptionInInitializerError: Illegal JCo archive "sapjco3-3.0.11.jar". It is not allowed to rename or repackage the original archive "sapjco3.jar"
```

このエラーを解決する手順は、次のとおりです。

Apache Maven を使用している場合は、属性 ​`<stripVersion>true</stripVersion>`​ を持つ ​**maven-dependency-plugin**​ を設定します。 これを設定し、JCo アーティファクトを削除すると、すべての連動関係ライブラリのバージョン番号が削除されます。

詳細は、外部サイトで [「Apache Maven Dependency Plugin (Apache Maven Dependency プラグイン)」](http://maven.apache.org/plugins/maven-dependency-plugin/usage.html)​を参照してください。

### [](#error-message-not-a-sap-object)メッセージが SAP オブジェクトではない

エンドポイントは、BAPI または IDoc を実行するために必要な入力パラメーターを含む SAP オブジェクトを想定します。

以下のメッセージが表示された場合、次のいずれかが考えられます。

- 必要な入力パラメーターが指定されていない。
- 入力パラメーターは指定されているが、SAP オブジェクトが無効である。

```text
org.mule.api.transport.DispatchException: Message is not a SAP object, it is of type "byte[]". Check the transformer for this Connector "SapConnector". Failed to route event via endpoint: SapOutboundEndpoint{endpointUri=sap://function, connector=SapConnector
{
 name=SapConnector
 lifecycle=start
 this=4571cebe
 numberOfConcurrentTransactedReceivers=4
 createMultipleTransactedReceivers=true
 connected=true
 supportedProtocols=[sap]
 serviceOverrides=<none>
}
,  name='endpoint.sap.function', mep=ONE_WAY, properties={evaluateFunctionResponse=false, bapiTransaction=false, functionName=BAPI_MATERIAL_AVAILABILITY, rfcType=srfc, outputXml=true}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: byte[]
```

この問題を解決する手順は、次のとおりです。

次の 2 つのいずれかの操作を実行して、BAPI または IDoc へのコールを表す SAP オブジェクトを作成します。

- BAPI コールを含む SAP オブジェクトが含まれる XML を作成します。
- 実際の SAP コールを作成するための入力が含まれる XML 定義を指定します。

### [](#error-icoc-metadata-unavailable)IDoc メタデータを使用できない

次のエラーが発生した場合、RFC 宛先が Unicode をサポートしていないことを意味します。

```text
RfcException: [mc-vmware|a_rfc] message: (3) IDOC_ERROR_METADATA_UNAVAILABLE: The meta data for the IDoc type "??????????????????????????å å" with extension "  ORDSAPB6L B60CL          ???" is unavailable.
    Return code: RFC_FAILURE(1)
    error group: 104
    key: RFC_ERROR_SYSTEM_FAILURE
```

このエラーを解決する手順は、次のとおりです。

トランザクション ​**SM59**​ を使用して、SAP インスタンスでの Unicode サポートを設定します。

### [](#error-missing-tid-handler)TID ハンドラーの欠落

TID ハンドラーが定義されていないため、次の例外を受信します。

```text
RfcException: [mule.local|MULESOFT_IDOC_SEND_TEST]
    message: check TID fault: No transaction handler is installed. Unable to process tRFC/qRFC requests.
    Return code: RFC_FAILURE(1)
    error group: 104
    key: RFC_ERROR_SYSTEM_FAILURE
Exception raised by myhost.com.ar|MULESOFT_IDOC_SEND_TEST
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.playbackTRfc(MiddlewareJavaRfc.java:2625)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.handletRfcRequest(MiddlewareJavaRfc.java:2546)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcServer.listen(MiddlewareJavaRfc.java:2367)
    at com.sap.conn.jco.rt.DefaultServerWorker.dispatch(DefaultServerWorker.java:284)
    at com.sap.conn.jco.rt.DefaultServerWorker.loop(DefaultServerWorker.java:369)
    at com.sap.conn.jco.rt.DefaultServerWorker.run(DefaultServerWorker.java:245)
    at java.lang.Thread.run(Thread.java:680)
```

このエラーを解決する手順は、次のとおりです。

`<sap:inbound-endpoint />`​で ​`rfcType`​ を ​`trfc`​ または ​`qrfc`​ に設定します。

### [](#error-parameter-not-supported)パラメーターがサポートされていない

SAP 拡張プロパティには有効な名前が必要です。このため、無効なプロパティ名を指定すると、次のようなエラーメッセージが表示されます。

```text
Root Exception stack trace:
RfcException: [null]
message: Parameter 'type' not supported: 'f'
Return code: RFC_INVALID_PARAMETER(19)
error group: 101
key: RFC_ERROR_PROGRAM

at com.sap.conn.rfc.api.RfcOptions.checkParameters(RfcOptions.java:182)
at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.connect(MiddlewareJavaRfc.java:1328)
at com.sap.conn.jco.rt.ClientConnection.connect(ClientConnection.java:731)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
```

この例では、​`type`​ という名前のパラメーターが無効であることが JCo ライブラリにより報告されています。

このエラーを解決する手順は、次のとおりです。

JCo 拡張プロパティの有効なプロパティ名を指定します。

### [](#error-multiple-jco-servers)複数の JCo サーバーが実行されている

2 つ以上の JCo サーバーには、設定名が異なっていても同じ設定パラメーターセットを含めることはできません。

次のエラーが表示されます。

```text
ERROR 2012-07-05 10:11:30,525 [WrapperListener_start_runner] com.mulesoft.mule.transport.sap.SapMessageReceiver: Error connecting to server
com.sap.conn.jco.JCoException: (101) JCO_ERROR_CONFIGURATION: Server configuration for sapavalara-1.0-SNAPSHOT-gettax is already used for a running server
at com.sap.conn.jco.rt.StandaloneServerFactory.update(StandaloneServerFactory.java:358)
at com.sap.conn.jco.rt.StandaloneServerFactory.getServerInstance(StandaloneServerFactory.java:176)
at com.sap.conn.jco.server.JCoServerFactory.getServer(JCoServerFactory.java:74)
at com.mulesoft.mule.transport.sap.jco3.SapJcoRfcServer.initialise(SapJcoRfcServer.java:46)
at com.mulesoft.mule.transport.sap.jco3.SapJcoServerFactory.create(SapJcoServerFactory.java:60)
at com.mulesoft.mule.transport.sap.SapMessageReceiver.doConnect(SapMessageReceiver.java:56)
at org.mule.transport.AbstractTransportMessageHandler.connect(AbstractTransportMessageHandler.java:218)
at org.mule.transport.AbstractConnector.registerListener(AbstractConnector.java:1254)
```

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">これは、同じ Mule サーバーで実行されている Mule アプリケーションにのみ適用されます。Mule サーバーグループのノードにこの制限はありません。</td></tr></tbody></table>

このエラーを解決する手順は、次のとおりです。

次の属性を使用して、サーバーグループキーを作成します (サーバーグループキーは JCo サーバー接続のユニーク性を決定します)。

- `jco.server.gwhost`​
- `jco.server.gwserv`​
- `jco.server.progid`

2 つのサーバーで ​`gwhost`​、​`gwserv`​、および ​`progid`​ の値が異なる場合のみ、2 つのサーバーを同じ Mule インスタンスで開始できます (JCo はこの情報をシングルトンクラスで保持します)。

## [](#see-also)関連情報

- [MuleSoft ヘルプセンター](https://help.mulesoft.com)
- [SAP Connector リファレンス](https://docs.mulesoft.com/jp/sap-connector/5.1/sap-connector-reference)