---
schema_version: "1"
id: 2babf2e3a1ccbea7421a94575d9c2f14993aafc9440c5311c00c3460ed38ff01
title: Database Connector のトラブルシューティング
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/db-connector/1.9/database-connector-troubleshooting.md
canonical_url: https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-troubleshooting
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 673d4c948be61e1e732c81c3a7f7183d22fde3d1d74b0683d002fe905190fae5
description: MuleSoft Documentation Site
release: "1.9"
latest: false
---
# Database Connector のトラブルシューティング

データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。

Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。

## [](#冗長ログの有効化)冗長ログの有効化

アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。  
手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。  
Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。

設定ファイルで冗長ログを有効にする手順は、次のとおりです。

1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。
2. アプリケーションのプロジェクト名を開きます。
3. `src/main/resources`​ パスフォルダーを開きます。
4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。
5. `<Loggers>`​ タグ内に ​`<AsyncLogger>`​ タグを追加します。
    
    ```xml
    			<Loggers>
    				...
    				<AsyncLogger name="org.mule.extension.db" level="DEBUG"/>
    				...
    			</Loggers>
    ```
6. アプリケーションの変更を保存します。
7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。

Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。

1. Anypoint Runtime Manager にアクセスします。
2. \[API configuration (API 設定)\] に移動します。
3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ パッケージを追加します。
4. 変更を適用します。

## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング

フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。

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

解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。

次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。

```xml
	<db:config name="Database_Config">
		<db:generic-connection url="someUrl" user="someUser" password="somePassword" driverClassName="someDriver">
			<db:pooling-profile maxPoolSize="10">
			</db:pooling-profile>
		</db:generic-connection>
	</db:config>

	<vm:config name="VM_Config">
		<vm:queues >
			<vm:queue queueName="testQueue" />
		</vm:queues>
	</vm:config>

	<flow name="processingFlow">
		<foreach collection="#[1 to 11]">
			<logger level="INFO" message="#['Starting Iteration ' ++ payload as String]" />
			<vm:publish config-ref="VM_Config" queueName="testQueue"/>
			<logger level="INFO" message="#['Finishing Iteration ' ++ payload as String]"/>
		</foreach>
	</flow>

	<flow name="coolFlow">
		<vm:listener config-ref="VM_Config" queueName="testQueue" numberOfConsumers="1"/>
		<db:stored-procedure config-ref="Database_Config">
				<db:sql><![CDATA[{call testProc2()}]]></db:sql>
			</db:stored-procedure>
		<logger level="INFO" message="#[output application/json --- payload.resultSet1]" />
	</flow>
```

## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング

一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。

`net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'`

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

Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例:

`call doubleMyInt(:myInt)`

## [](#一般的なスローの理解)一般的なスローの理解

スローされる一般的なメッセージのリストとその解釈方法を次に示します。

- DB:BAD\_SQL\_SYNTAX
    
    指定された SQL クエリの構文が無効です。
- DB:CANNOT\_LOAD\_DRIVER
    
    Database Connector で JDBC ドライバーを読み込むことができません。
- DB:CANNOT\_REACH
    
    Database Connector で RDBMS との接続を確立できません。
- DB:CONNECTIVITY
    
    いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。
- DB:INVALID\_DATABASE
    
    RDBMS への接続は確立されましたが、データベースが存在していません。
- DB:INVALID\_CREDENTIALS
    
    データベースで指定されたログイン情報が拒否されました。
- DB:QUERY\_EXECUTION
    
    クエリの実行に失敗しました。
- DB:RETRY\_EXHAUSTED
    
    すべての再接続の試行に失敗しました。

## [](#関連情報)関連情報

[MuleSoft ヘルプセンター](https://help.mulesoft.com)