Home > トラブルシューティング > データベースのトラブルシューティング

データベースのトラブルシューティング

MS-SQL データベース

Q

ドイツ語版のMSSQLサーバを搭載したMS Server 2000 と 2003 にMagic xpiをインストールした時に、date_format 環境変数を正しく設定していなかった場合どうしたらよいでしょうか?

A

magic.ini ファイルで 内部データベースの日付書式と合うようにdate_format 環境変数を手動で設定する必要があります。

 

Q

データベースのリソースで検証で成功したにも関わらず、実行時にエラー「文字 ’-’ 付近で不正な構文エラーが発生しました」が発生するのはなぜですか。

A

MSSQLではハイフン ’-’ はデータベース名として認められていません。この制限を解除するにはデータベース名を中括弧[ ]で囲んでください。

 

Q

Blobデータの更新中に、更新、削除、動的およびUPSERT操作がMSSQL Serverデータベースの「エラー9805:1つ以上の必須パラメーターに値が指定されていません」で失敗するのはなぜですか?

A

このエラーが発生する理由の一つは、データスキーマがバイナリBlobデータを処理する方法にあります。データベースのレコードを修正する時、動的SQL文はPDFテキストのようなBlobデータを文字列として取り扱い、バイナリとして処理しません。

このエラーを解決するために、以下のように実行してください。

  • 更新ステップにおいて、更新データベーススキーマの前に新しい変数スキーマを追加して、Blob変数が次のように更新されるようにします。更新ステップには、次のようにブロブ変数が更新されるように、更新データベーススキーマの前に新しい変数スキーマを追加します。

ASCIIChr (39)&RTrim (RepStr (<Blob Variable>,ASCIIChr (39),ASCIIChr (39)&ASCIIChr (39)))&ASCIIChr (39).

例えば、Blob変数がC.UserBlobの場合、次のようになります。

ASCIIChr (39)&RTrim (RepStr (C.UserBlob,ASCIIChr (39),ASCIIChr (39)&ASCIIChr (39)))&ASCIIChr (39).

  • 更新スキーマを動的に変更します。その後、SQL文を次のように変更します。

UPDATE dbo.[Blob_Data] SET Blob=CONVERT(varbinary(max),<?C.UserBlob?>) WHERE dbo.[Blob_Data].Id=1

 

Oracle データベース

Q

 "System Property oracle.net.tns_admin was empty" というエラーが発生するのは何故ですか?

A

内部データベースをOracleに変更しようとすると、このエラーが発生することがあります。

この問題を解決するには、GigaSpaces-xpa\bin\magicxpi-setenv.bat> ADDITIONAL_OPTIONSoracle.net.tns_adminのjvm引数で更新してください。

これは、TNSNAMES.ORAファイルを含むフォルダです。

set ADDITIONAL_OPTIONS=%ADDITIONAL_OPTIONS% -Dcom.magicsoftware.ibolt.home=%MAGIC_XPI_HOME%\runtime -Doracle.net.tns_admin=$ORACLE_HOME/network/admin

 

 

Q

なぜ、ORA-01858データベースエラーのメッセージがMagic xpiモニタで発生するのでしょうか?

A

ORA-01858データベースエラーのメッセージは、数値を指定する箇所に数値以外の文字が指定されていることを意味しています。

このエラーは日付フィールドの書式と関係があり、無効な日付表示形式が設定された場合に発生します。

この問題を防止するには、正しい日付表示形式を入力することです。magic.iniの[MAGIC_LOGICAL_NAMES]セクションのdate_formatフィールドは、内部のデータベースの日付表示形式と同じにする必要があります。

 

 

Q

OracleデータベースのSelect count(*)ステートメントは、N22の書式が返るのは何故ですか?

A

N22の書式(Magic xpiでは有効でありません)は、実際はOracleから来ます。これを防ぐには、ステートメントにキャストを追加してください。これは、値をMagic xpiによって処理することができる書式に変換します。

しかし、チェッカーによって無効な数値書式であることを通知します。

 

 

Q

数値を使用すると、ORA-01722というエラーが表示されます。どのようにたら、解決することができますか?

A

ORA-01722エラーは、数値が間違ったフォーマットでデータベースに送られたことを示します。Magic xpiは、ドット(.)による小数点が設定された数値のみ使用できます。

以下のことをチェックししてください。

  1. OSの地域設定で、小数点がドット(.)に設定されているか、そして、桁区切りがカンマ(,)に設定されていることを確認してください。

  2. 次のコマンドを実行して、サーバの設定をチェックしてください。:
    select * from nls_database_parameters;
    NLS_NUMERIC_CHARACTERS は、ドット(.)カンマ(.)でなければなりません。. (The NLS_NUMERIC_CHARACTERS .,).

  3. 使用しているPCのレジストリで32ビットOSに対応したsoftware\OracleでOracleの設定を確認し、64ビットOSに対応したsoftware\wow6432Node\Oracleの設定を確認してください。
    NLS_TERRITORYは、AMERICAでなければなりません。例、AMERICAN_AMERICA.WE8MSWIN1252

 

 

Q

Oracleスクリプトを実行しようとすると、"ORA-65096: invalid common user or role name" エラーが発生します。

A

Oracle12cのデータベース上でスクリプトを実行しようとすると、このエラーが発生するかもしれません。

この問題を解決するには、"Magic xpi の内部データベースを変更するには”のトピックのステップ#5の手順に従ってください。

MySQL データベース

Q

MySQLデータベースを使用する時に、不正な時刻値のエラーが発生します。

A

時刻関数を使用する時に、MySQL 5.1.4データベースを使用していると、以下のエラーが発生するかもしれません。

- Error 9804: [MySQL][ODBC 5.1 Driver][mysqld-5.6.20]Incorrect time value: '14:39:23''14:39:2' for column 'time_1' at row 1

この問題を解決するには、MySQL 5.3.4以上をインストールしてください。

DB2/400 データベース

Q

DB2/400内部データベースを使用してプロジェクトを実行する時、GS-UIで次のエラーが発生します: 'mgmirror-gs [1] ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] - Data truncation'?

A

非常に大きなXML BLOBを使用する時、このエラーが発生するかもしれません。この問題を解決するには、より大きなUSER_BLOBカラム(USERBLOB)を定義してください。

例えば:USERBLOB BLOB(10000000)

ODBCデータベース

Q

データマッパーでODBC経由のSQL Serverを使用する間に、DBスキーマプロパティ値が正しく表示されません。

A

Magic xpi スタジオを使用して SQL ServerのためにネイティブのMicrosoft ODBCドライバを使用するには、data_types.xmlファイルの情報をdata_types_MSSQLODBC.xmlファイルからに値に置き換える必要があります。

これらのファイルはどちらも、以下の配置されています。

<Magic xpiインストール>\Studio

 

Q

Postgreデータベースを使用する場合、ODBCドライバを使用したデータベース接続が作成されないのはなぜですか?

A

システムにインストールされているPostgre ODBCデータベースドライバのバージョンがMagic xpiのインストールと互換性がないため、データベース接続の作成に失敗します。この問題を解決するには、Postgre ODBCデータベースドライバの09.03.0400または10.00バージョンをインストールしてください。これらのバージョンはどちらも Magic xpi と互換性があります。

一般

Q

プロジェクトをビルドすると下記のエラーが出力されます。

  • データベースリソースに暗黙で作成された変数名と、ユーザ環境変数名が重複しています。

  • 暗黙に作成されたユーザ環境変数名とデータベースリソース名が重複しています。

A

データベースのリソース名が<ResourceName>の場合、環境変数に<ResouceName>_db, <ResourceName>_server, <ResourceName>_userのエントリがあるとエラーになります。

 

Q

ストアドプロシージャに対して複数のリクエストを同時に実行すると、データマッパーステップがエラーで失敗するのはなぜですか?

A

このエラーが発生する理由の1つとして、使用可能な接続がないためフローが終了した可能性があげられます。この場合、データベーススキーマのデータベース接続制限を超えているかどうかを確認します。この制限は、Magic xpaの最大接続数プロパティによって制御され、Magicxpaスタジオから変更する必要があります。以下の手順で設定してください。

  1. デスクトップに作成したMagic xpiのショートカットフォルダからMagicxpaStudioを開きます。

  2. [オプション]-> [設定]-> [DBMS]を開きます。

  3. 必要なデータベースを選択し、Alt + Enterを押すと、[DBMS]ウィンドウが開きます。

  4. [最大接続数]ボックスに目的の値を入力します。この値はMagic.iniファイルに反映されます。

 

Q

プロジェクトの実行中に接続が失われた場合、データベースの再接続を開始するにはどうすればよいですか?

A

フローでデータベースの再接続を開始するには、次の手順を実行します。:

  1. データベースの再接続が必要なフローで、エラーフローまたはエラーポリシーを定義します。

  2. エラーフローで、送り元または送り先のいずれかにデータベーススキーマを含むデータマッパーステップを追加します。

  3.  このステップでデータベーススキーマプロパティのDB切断を[はい]に設定します。.  

この構成でデータベース接続が失われると、エラーフローが呼び出されます。 エラーフローでは、エラー変数がリセットされます。 データベース接続も再開および復元され、メインフローに戻ります。

これにより、接続が成功した状態でメインフローが再び実行されます。