Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Sawa_Ito
Product and Topic Expert
Product and Topic Expert
0 Kudos


このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。

 

 

 

既存のシステムをクローン化して、そのイメージを他のコンピューターに配備したいと思うことがあるかもしれません。

例えば、トレーニングを実施する時や、大量に配備する必要がある場合です。

 

SQL Anywhere データベースサーバーが埋め込まれたアプリケーションでは、そのままでは問題が発生する可能性があります。なぜならば、TCP/IP プロトコルを使用する場合には、データベースサーバー名はそのネットワーク内でユニークでなければならないからです。何が起こるかと言うと、「マスター」コンピューターイメージは、予想どおりの動きをしますが、「クローン」のシステムを起動しても、同じサーバー名がすでに使用されているためデータベースサーバーは起動できません。

 

もしアプリケーションが、シェアードメモリーを使用してデータベースサーバーに接続できる場合は、いくつか方法があります。

 

  1. シングルユーザー、シングルコンピューターでの使用のためのパーソナルデータベースサーバー (dbeng16) を使用する。または、

  2. ネットワークデータベースサーバー (dbsrv16) を使用して、 "-x none" オプションでTCP/IP ネットワークプロトコルを無効にする


コマンドラインは以下のどれかになります。

 

dbeng16.exe -n MyServerName MyDatabase.db


 

dbsrv16.exe -n MyServerName -x none MyDatabase.db


 

これらどちらのコマンドもデータベースサーバー MyServerName を起動し、データベースファイル MyDatabase.db をロードします。違いは、パーソナルデータベースサーバー (dbeng16) には、いくつかの制限があるという点です (例 同時接続 10、1CPUあたりの最大コア数4)。

制限の詳細リストは、こちらを参照してください。

これを避けたい場合には、ネットワークデータベースサーバー (dbsrv16) を使用してください。TCP/IP ネットワークプロトコル (例えば、jConnect JDBC ドライバーを使用したJavaのアプリケーションなど) を使用してアプリケーションに接続する必要がある場合には、同様に2つの方法がありますが、少し異なります。

 

  1. パーソナルデータベースサーバー (dbeng16) を使用し、「-x tcpip」オプションで、TCP/IP ネットワークプロトコルを有効にする。または

  2. ネットワークデータベースサーバー (dbsrv16) を使用し、特定のネットワークプロトコルオプションで他の複数のコンピューターのそのデータベースへの接続方法をコントロールする。


 

パーソナルデータベースサーバーのコマンドラインは、以下のようになります。

 

dbeng16.exe -n MyServerName -x tcpip MyDatabase.db


 

パーソナルデータベースサーバーは、先に述べた制限があるためネットワークデータベースサーバーを使用する必要がある場合には、いくつかの方法から選択することができます。ユニークなサーバー名の問題を回避する方法の一つとしては、コンピューター名のような環境変数を使用してデータベースサーバーを起動します。コマンドラインは、以下のようになります。

 

dbsrv16.exe -n MyServer-%COMPUTERNAME% -x tcpip MyDatabase.db


 

これは、ネットワークデータベースサーバー「MyServer-%COMPUTERNAME%」で、コンピューター名はネットワーク内のマシン名でユニークです。このアプローチは、多くの場合に有効なものの、いくつかの欠点があります。

 

  1. 環境変数 %COMPUTERNAME% は、適切に定義される必要があります。通常、適切に定義されていますが、管理ユーザー側で変更できてしまいます。

  2. ODBC を使用してデータベースへ接続しようとする場合、データベースサーバーを見つけることができないかもしれません。コマンドラインユーティリティで %COMPUTERNAME% を使用すると機能しますが、ODBC Administrator はこれだと問題があります。そのため、%COMPUTERNAME% をその文字そのものとして翻訳します。 (環境変数の値に置き換えません)


 

この方法では、しかしながら、データベースサーバー名およびIPアドレスがわかれば、他のコンピューターがデータベースにアクセスすることができてしまいます。

 

二番目のアプローチは、データベースサーバーを起動する際に、 「LocalOnly=YES」 ネットワークプロトコルオプションを以下のように使用するものです。

 

dbsrv16.exe -n MyServer -x tcpip(LocalOnly=YES) MyDatabase.db

 

これは、ネットワークデータベースサーバーを起動しますが、ローカルコンピューターへの接続を制限します。本質的には、パーソナルデータベースサーバーを起動するのと同じ動作ですが、パーソナルデータベースサーバーの制限はありません。

 

どちらの方法を選択するかは、何をしたいかに依存します。最終的には、結果はほとんど同じで、クローンのシステムのデータベースサーバーを起動するに問題はありません。

 

 

 

 

===

 

SAP SQL Anywhere に関する詳細情報は、SAP SQL Anywhere Communityページ<英語> を参照してください。

 

上記のコミュニティーに掲載されている技術情報は、順次SQL Anywhere 日本語コミュニティ

に掲載しています。

 

SQL Anywhere に関してはまずはこちらをご参照ください。無期限でご利用いただける無償の Developers Edition もこちらからダウンロードが可能です。

 

SQL Anywhere に関して技術的な質問のある方はコミュニティに登録し、
「Ask a Question」機能をご利用ください。

Language には「Japanese」、
Primary Tag には「SAP SQL Anywhere」を選択
User Tagに「sql anywhere」「sql anywhere Japanese question」

を入力してください。

不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。

 

======================
ご購入に関するお問い合わせ

こちらよりお問い合わせください。