Magic xpa

サイト内検索

Magic eDeveloper V10 によるMicrosoft SQL Server 2008 の動作確認レポート

マジックソフトウェア・ジャパン株式会社
カスタマーサービス本部 開発部
2008/10/27

動作確認レポート

はじめに

このドキュメントは、Magic eDeveloper V10 (Magic V10)によるMicrosoft SQL Server 2008 (MSSQL Server 2008) の動作確認テストの結果について記述したものです。

対象

  • Magic V10.1 SP4b
  • Magic Ver10.1 MSSQL データベースゲートウェイ : MGMSSQL.dll(Ver10.1 SP4b-0)

動作環境

クライアント
  • CPU :Intel Core2Duo 2.13 GHz
  • メモリ:512MB
  • OS:Windows XP Professional SP2
  • クライアントモジュール: Microsoft SQL Server 2008 Native Client クライアント
  • Magic V10 SP4b + MGMSSQL.dll (Version 10.1 SP4b-0 )
サーバ
  • CPU :Intel Core2Duo 2.13 GHz
  • メモリ:1GB
  • OS:Windows Server 2003 R2 Standard Edition
  • Microsoft SQL Server Standard Edition (x86 Edition)

検証結果

MS SQL Server 2000/2005 で動作可能なアプリケーションで検証した結果、その互換レベルにおきまして、正常に動作することを確認いたしました。

留意事項

MS SQL Server 2005/2008の新機能、仕様変更に関して、本モジュールにおきましてサポート対象外とさせていただきますが、現状確認している点は以下の通りです。

ヒント構文の変更

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

この変更に伴い、次のような条件が重なったときに、「データベースに ・・・ という名前のオブジェクトが既に存在します」というエラーが出ます。

  1. MS SQL Server 2005/2008 のデータベースに、既存の dbo ユーザ以外にアプリケーションのためのユーザがあり、デフォルトスキーマが規定値のdboである。
  2. Magic のデータベース特性/ユーザとして、このユーザが指定されている。
  3. Magic のデータベース特性/存在チェックが Yes である。
  4. アプリケーションのテーブルのテーブル特性/オーナ名が空欄である。

この問題を回避するには、テーブル特性/オーナ名 に、スキーマ名 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

  • このレベルの利用に関して、現在既知の問題はありません。
SNAPSHOT

SNAPSHOT 分離レベルについては、以下のような問題があり、現状は制限事項です。

  • SNAPSHOT 分離レベルは、Magic の DBMS特性/分離レベル では設定できません。埋め込みSQL文によって、直接以下のステートメントを実行する必要があります。最初に一度実行すれば、そのセッション内で設定が有効になります。

    SET TRANSACTION ISOLATION LEVEL SNAPSHOT

  • SNAPSHOT 分離レベル実行時に、同一のレコードに対してレコードの更新・削除を行おうとすると、「(ホスト名): 更新の競合により、スナップショット分離トランザクションが中断しました・・・」というエラーが出て、トランザクションがアボートすることがあります。

以上

動作確認レポートを閉じる