1 つの
GeneXus Server インスタンスから別のインスタンスに
ナレッジベースを移行する方法を説明します。
注: ナレッジベースを移行する前に、次の手順を実行します。
1) コミット保留中のオブジェクトをすべてコミットします。
2) GeneXus Server Evolution 3 インスタンスでフリーズバージョン「BeforeV15」を作成します。
3) 必要な場合は、「
GeneXus Server インストールマニュアル」の手順に従って、新しい GeneXus Server インスタンスをインストールし、この新しい GeneXus Server 15 インスタンスで権限を設定します。
4)
GeneXus Server Storage Migrator Utility (GXSSM) を使用して、元のサーバーインスタンスからナレッジベースをエクスポートします。これにより、すべてのナレッジベース情報を格納した zip ファイルが生成されます。
5)
GeneXus Server Storage Migrator Utility を使用して、生成されたファイルを移行先サーバーにインポートします。この操作は、新しい GeneXus Server インスタンスで実行することも、同じインスタンスで実行することもできます。後者の場合、別の
ナレッジベースのエイリアスを使用してナレッジベースを複製します。
6) GeneXus Server 15 インスタンスでフリーズバージョン「AfterEvo3」を作成します。
7) IDE GeneXus 15 より、GeneXus Server 15 インスタンス内の移行したナレッジベースからチェックアウトします。
注: 手順 2 と 6 は任意ですが、移行後に 2 つのインスタンスにコミットされた変更点を理解するために、実行することをお勧めします。
ナレッジベースのエイリアスが SampleKB のナレッジベースについて考えてみましょう。
GXSSM.exe ファイル (
C:<GeneXus Server のインストールフォルダ>\VDir\Bin 内) を探した後、コマンドラインから exe ファイルを実行します。
C:<GeneXus Server のインストールフォルダ>\VDir\Bin\gxssm.exe /e /kb:"SampleKB" /out:"c:\temp"
SampleKB.zip ファイルが
C:\temp フォルダ内に作成されます。
新しい GeneXus Server インスタンスに
SampleKB.zip ファイルをインポートするには、次のコマンドを実行します。
C:<GeneXus Server のインストールフォルダ>\VDir\Bin\gxssm.exe /i:"c:\temp\SampleKB.zip" /kb:"MigratedSampleKB" /ignoregam:true
注: GeneXus Server インスタンスと関連付けられている SQL Server インスタンスのバージョンは、エクスポート元の GeneXus Server インスタンスと同じかそれ以上である必要があります。ダウングレードパスはサポートされていません。たとえば、SQL Server 2008 を使用してエクスポートしたナレッジベースを下位バージョンの SQL Server (2005 など) にインポートすることはできません。実行すると、次のエラーが発生します。
=== Section ImportKB started ===
Extracting file to temp folder 'C:\Users\GeneXusUser\AppData\Local\Temp\ATT201202241801'
Loading GXserver defaults...
Renaming database files...
Attaching database...
Error:Error importing data
Error:The database 'GXS_SampleKB' cannot be opened because it is version 655.This server supports version 612 and earlier.
A downgrade path is not supported.
Could not open new database 'GXS_SampleKB'.
CREATE DATABASE is aborted.
Error: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand
cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Artech.Udm.Framework.SQL.DataConnection.Attach(KBConnectionInfo info) in e:\Development\GxXEv2\Udm\Layers\Data\SQL\KBSQLConnection.cs:line 37
at GenexusServer.StorageMigrator.Reorgs.Import.ExecuteOperation() in e:\Development\GxXEv2\Common\Tools\GXserverMigrator\Reorgs\Import.cs:line 99
=== Section Import KB ended with errors ===
エクスポート処理で次のようなエラーが発生することがあります。
=== Section Exporting GAM data ended successfully ===
Warning:Could not find a part of the path 'C:\GeneXusServer\VDir\Bin\jsons\KnowledgeBaseName.gam.zip'.
フォルダコンテンツを削除し、操作を再試行します。
インポート操作で次のようなエラーが発生することがありますが、無視してかまいません。
Starting BL...
log4net:ERROR [ RollingFileAppender ]
Unable to acquire lock on file C:\GeneXusServer\VDir\Bin\gxssm.log.
The process cannot access the file 'C:\GeneXusServer\VDir\Bin\?gxssm.log'
because it is being used by another process.
GeneXus Server インスタンスが安全でない場合、
/ExitOnError フラグを使用すると、次のようなエラーが発生することがあります。
Input:/e /kb:"sandboxKB" /out:"c:\temp" /ExitOnError
Warning:GXserver is not secure.Ignoring GAM data
Error:Error exporting data
Error:GAM Exportation Failed
Error: at GenexusServer.StorageMigrator.Reorgs.Export.ExportKB(GXS_KBCatalog kb)
at GenexusServer.StorageMigrator.Reorgs.Export.ExecuteOperation()
/ExitOnError フラグを削除するか、
/Ignoregam: true に変更します。
サーバー間でナレッジベースを移行しようとすると、次のようなエラーが発生することがあります。
========== Receive changes started ==========
Contacting GeneXus Server at 'http://servername/instancename'...
GeneXus Server: Update since MM/DD/YYYY HH:MM:SS PM requested by gxtechnical\username on version KBVersionName of 'KBNname'
error: GeneXus Server: srv005:The Client Knowledge Base is not linked to this Server Knowledge Base: 'KBVersionName'
Failed: Receive changes
インスタンス間で GXserver のナレッジベースを移行する際は、
GeneXus Server Storage Migrator Utility を使用してください。
サーバーからナレッジベースを作成、クライアントのナレッジベースから接続を解除、ローカルで作業したナレッジベースを別のサーバーに送信することによってナレッジベースを移行した場合、新しいサーバーに作成されたそのサーバーナレッジベースは、移行元のサーバーナレッジベースとは別物であり、ほかのクライアントのナレッジベースでは、この新しい GXserver インスタンスを使用するように変更を加えることはできません。
サーバーからナレッジベースを新規に作成する必要があります。