Magic uniPaaS V1Plus によるMicrosoft SQL Server 2008 R2 の動作確認レポート
マジックソフトウェア・ジャパン株式会社
ソリューション本部 技術部
2010/10/27
動作確認レポート
はじめに
このドキュメントは、Magic uniPaaS V1PlusによるMicrosoft SQL Server 2008 R2 (MSSQL Server 2008R2) の動作確認テストの結果について記述したものです。
対象
- Magic uniPaaS Version 1.8 SP1b PT1/PT2
- Magic uniPaaS MSSQL データベースゲートウェイ : MGMSSQL.dll(Version 1.8 sp1a PT1-0)
動作環境
- クライアント
-
- CPU :Intel Core i5 750 2.67 GHz
- メモリ:2GB
- OS:Windows 7 Professional
- クライアントモジュール: Microsoft SQL Server 2008 R2 Native Client クライアント
- Magic uniPaaS V1Plus + MGMSSQL.dll
- サーバ
-
- CPU :Intel(R) Xeon(R) L5520 nbsp;2.27 GHz
- メモリ:8GB
- OS:Windows Server 2008 R2 Standard
- Microsoft SQL Server Standard Edition (64-bit) Version 10.50.1600.1
検証結果
MS SQL Server 2000/2005 で動作可能なアプリケーションで検証した結果、その互換レベルにおきまして、正常に動作することを確認いたしました。
留意事項
MS SQL Server 2008 R2の新機能、仕様変更に関して、本モジュールにおきましてサポート対象外とさせていただきます。
MS SQL Server 2005以降、確認している点は以下の通りです。
- ヒント構文の変更
-
MS SQL Server 2005以降では、SELECTステートメントに付加されるテーブルヒントはWITH キーワードと一緒に指定するように変更されました。
参考URL: http://msdn2.microsoft.com/ja-jp/library/ms187373.aspxこの変更に伴い、アプリケーション開発者がテーブル特性/ヒント、およびインデックス特性/ヒントにヒントを設定する際、WITH を付けずに指定していると、リンクジョインを使ったプログラムを実行する際に「・・・ 付近に不適切な構文があります。・・・」というエラーが出ることがあります。
この問題を回避するには、MS SQL Server 2005/2008 の構文に従い、WITH と括弧およびコンマを付けた形式のヒントに変更してください。 - ユーザとスキーマの分離
-
MS SQL Server 2000 までは、スキーマとユーザが同一でしたが、MS SQL Server 2005より分離されました。これによって、テーブルやプロシジャーなどのオブジェクトの完全修飾名は「サーバ名.データベース名.オーナ名.テーブル名」から「サーバ名.データベース名.スキーマ名.テーブル名」に変更されました。
参考URL: http://msdn2.microsoft.com/ja-jp/library/ms190387(ja-jp,SQL.90).aspxこの変更に伴い、次のような条件が重なったときに、「データベースに ・・・ という名前のオブジェクトが既に存在します」というエラーが出ます。
- MS SQL Server 2005/2008 のデータベースに、既存の dbo ユーザ以外にアプリケーションのためのユーザがあり、デフォルトスキーマが規定値のdboである。
- Magic のデータベース特性/ユーザとして、このユーザが指定されている。
- Magic のデータベース特性/存在チェックが Yes である。
- アプリケーションのテーブルのテーブル特性/オーナ名が空欄である。
この問題を回避するには、テーブル特性/オーナ名 に、スキーマ名 dbo を明示的に指定してください。
- 分離レベル
-
MS SQL Server 2005より、READ COMMITTED SNAPSHOT および SNAPSHOT の二つの分離レベルがサポートされました。
Magic でこれらのレベルを利用する場合、次の動作を確認しております。- READ COMMITTED SNAPSHOT
-
- READ COMMITTED SNAPSHOT 分離レベルは、以下のコマンドによりデータベースのプロパティを変更してから、Magic の DBMS特性/分離レベル に 1 を設定します。
ALTER DATABASE データベース名 SET READ_COMMITTED_SNAPSHOT ON
- このレベルの利用に関して、現在既知の問題はありません。
- READ COMMITTED SNAPSHOT 分離レベルは、以下のコマンドによりデータベースのプロパティを変更してから、Magic の DBMS特性/分離レベル に 1 を設定します。
- SNAPSHOT
-
- SNAPSHOT 分離レベルは、Magic の DBMS特性/分離レベル では設定できません。埋め込みSQL文によって、直接以下のステートメントを実行する必要があります。最初に一度実行すれば、そのセッション内で設定が有効になります。
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
- SNAPSHOT 分離レベル実行時に、同一のレコードに対してレコードの更新・削除を行おうとすると、「(ホスト名): 更新の競合により、スナップショット分離トランザクションが中断しました・・・」というエラーが出て、トランザクションがアボートすることがあります。
- SNAPSHOT 分離レベルは、Magic の DBMS特性/分離レベル では設定できません。埋め込みSQL文によって、直接以下のステートメントを実行する必要があります。最初に一度実行すれば、そのセッション内で設定が有効になります。
- Uniqueidentifier型
- Uniqueidentifier型のカラムにレコードを挿入する場合は、{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}というデータ形式を指定するか、埋め込みSQLタスクで insert into テーブル名 value (NEWID() ...);などのSQL文を実行します。
参考:Magic eDeveloper V10 によるMicrosoft SQL Server 2008 の動作確認
以上