プリントリリースデータベース用に Microsoft SQL Server を使用する

Microsoft SQL Server のプリントリリースデータベーステーブルは、インストール時に自動的に作成されます。インストール中に、データベース画面で Microsoft SQL Server データベースサーバー情報を指定します。このプロセスにより、database.properties ファイルに正しい情報が自動的に入力されます。database.properties ファイルと同じディレクトリに、database_mssql.properties ファイルのバックアップコピーが保存されます。database_mssql.properties ファイルには、Microsoft SQL Server 用の database.properties ファイルを構成する際にテンプレートとして使用できる変数名が含まれています。database_mssql.properties を編集して使用する場合は、名前を database.properties に変更します。

メモ:

インストール後に Firebird から Microsoft SQL Server に切り替える場合は、Microsoft SQL Server でプリントリリースデータベースを手動で作成します。すべてのバックアップファイルを削除してから、LPM インストーラを実行します。データベース画面で Microsoft SQL Server データベース情報を指定します。

メモ: LPM データは、新しい Microsoft SQL Server データベースに移行されません。

サポートされている Microsoft SQL Server のバージョン

Microsoft SQL Server 2014 または 2012 をインストールする前に、[サーバー マネージャ]から以下を追加します。

Microsoft SQL Server のプリントリリースデータベースを作成する

メモ: LPM バージョン 2.4 以降のインストーラでは、インストール中にプリントリリーステーブルが自動的に作成されます。
  1. Management Studio から、データベース所有者としてデータベースサーバーに接続します。

  2. データベースノードを右クリックし、[新しいデータベース]をクリックします。

  3. データベースのわかりやすい名前を入力します。

  4. [OK]をクリックします。

プリントリリーステーブルに Unicode を追加する

  1. コンピュータから、プリントリリーステーブルを更新します。たとえば、%ProgramFiles%\Lexmark\Solutions\lpm\ms-sql-script\migrate-ascii-column-data-to-unicode.sql

    メモ:

    • テーブルが存在しないと、MP_PRINTERS テーブルのエラーが発生することがあります。[Email Watcher]を[プリンタのニックネーム]とともに使用していない場合は、スクリプト内のその行をコメントアウトします。
    • プリントリリースバージョン 2.3.15 以降を使用する場合は、プリントリリースバージョン 2.3.14 でスクリプトを実行すると、dbo.SCHEMA_ELEMENTS テーブルのエラーが発生することがあります。プリントリリースバージョン 2.3.14 を使用している場合は、スクリプト内のその行をコメントアウトします。
  2. Management Studio から、データベース所有者としてデータベースサーバーに接続します。

  3. プリントリリースデータベースを右クリックして、[新しいクエリ]をクリックします。

  4. 新しいクエリウィンドウに、migrate-ascii-column-data-to-unicode.sql ファイルの内容を貼り付けます。

  5. プリントリリースデータベースが選択されていることを確認し、[実行]をクリックします。

PR_JOBS などのすべてのプリントリリーステーブルで、varchar データ型が nvarchar に更新されます。

Microsoft SQL Server の初期設定インスタンスの database.properties ファイルを更新する

LPM バージョン 2.4 以降では、インストール中に接続文字列がプロパティファイルに作成されます。Microsoft SQL Server でプリントリリースデータベースを手動で作成し、LPM スタンドアロンインストーラを実行します。このプロセスにより、database.properties ファイルに正しい情報が入力され、Microsoft SQL Server にプリントリリーステーブルが自動的に作成されます。

  1. Lexmark 管理コンソールで、アプリケーションサーバーをオフラインに設定します。

  2. アプリケーションサーバーから <install_path>\apps\printrelease\WEB-INF\classes フォルダを参照します。ここで、 <install_path> は、LPM のインストールパスです。

  3. database.properties の名前を database_backup.properties に変更します。

  4. テキストエディタを使用して、database_mssql.properties ファイルを開きます。

  5. 以下の操作を実行します。

    1. ${SQLSERVER} を検索し、すべてのインスタンスを Microsoft SQL Server のネットワークアドレスに置き換えます。

    2. ${SQLDB} を検索し、すべてのインスタンスを、プリントリリースデータベーステーブルを含む Microsoft SQL Server データベース名に置き換えます。

    3. ${SQLUSER} を検索し、すべてのインスタンスを、プリントリリースデータベーステーブルへの読み取り/書き込み/削除アクセス権を持つ Microsoft SQL Server の名前付きユーザーに置き換えます。

    4. ${SQLPW} を検索し、すべてのインスタンスを、Microsoft SQL Server の名前付きユーザーのパスワードに置き換えます。

  6. ファイルに database.properties という名前を付けます。

  7. ファイルを保存します。

  8. Lexmark ソリューションのアプリケーションサーバーサービスを再起動します。

  9. Lexmark ソリューションのアプリケーションサーバープロセス(tomcat7.exe)が完全に初期化されたら、サーバーをオンラインに設定します。

  10. すべてのアプリケーションサーバーに対してこのプロセスを繰り返します。

メモ: プリントリリーステーブルのサブセットだけが Microsoft SQL Server に保存されている場合は、database_mssql.properties ファイルから database.properties ファイルに適切なセクションをコピーします。たとえば、Microsoft SQL Server のプリントリリース統計データのみが必要な場合は、database_mssql.properties ファイルから database.STATS セクションをコピーします。database.properties ファイルから、同じ情報を上書きします。

複数のデータベースのデータソースを更新する

database.properties ファイルの変更には、LPM ポータルアプリケーションサーバーでの更新が必要です。初期設定では、LPM ポータルに、初期設定データソースとセカンダリデータソースと呼ばれるデータソースが設定されます。データソース内のデータベース情報は、LPM の設定によって異なります。たとえば、非ハイブリッド設定にインストールされた LPM では、初期設定データソースとセカンダリデータソースが同じデータベースをポイントします。ハイブリッド設定では、初期設定データソースは LPM Microsoft SQL Server データベースを指し、セカンダリデータソースは LDD Firebird データベースをポイントします。

  1. Lexmark 管理コンソールで、アプリケーションサーバーをオフラインに設定します。

  2. アプリケーションサーバーから <install_path>\apps\lpm\WEB-INF\classes フォルダを参照します。ここで、 <install_path> は、LPM のインストールパスです。

  3. テキストエディタを使用して、database-production-config.properties ファイルを開きます。

  4. 初期設定データソースまたはセカンダリデータソースがポイントするデータベース情報を更新します。

    サンプルコード

    dataSource.url = jdbc:sqlserver://<ip address>;databasename=LPMPremise;?lc_ctype=UTF-8
    dataSource.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver
    dataSource.dialect = org.hibernate.dialect.SQLServer2008Dialect
    dataSource.username = lpmadmin
    dataSource.password = tiger123
    dataSource.properties.validationQuery = select 1
    dataSource.pooled = true
    dataSource.properties.maxActive = 15
    dataSource.properties.maxIdle = 1
    dataSource.properties.minIdle = 1
    dataSource.properties.minEvictableIdleTimeMillis=5000
    dataSource.properties.timeBetweenEvictionRunsMillis=60000
    dataSource.properties.testOnBorrow=true
    dataSource.properties.testWhileIdle=true
    dataSource.properties.testOnReturn=true
    dataSource.removeAbandoned=true
    dataSource.removeAbandonedTimeout=180000
    
    dataSource_secondary.url = jdbc:firebirdsql://<ip address>/3050:SOLUTIONINFO?lc_ctype=UTF-8
    dataSource_secondary.driverClassName = org.firebirdsql.jdbc.FBDriver
    dataSource_secondary.dialect = org.hibernate.dialect.FirebirdDialect
    dataSource_secondary.username = framework
    dataSource_secondary.password = ENC (mna6C4NkloGNVSx4ry08RA==)
    dataSource_secondary.properties.validationQuery = select 1 from RDB$DATABASE
    dataSource_secondary.pooled = true
    dataSource_secondary.properties.maxActive = 15
    dataSource_secondary.properties.maxIdle = 1
    dataSource_secondary.properties.minIdle = 1
    dataSource_secondary.properties.minEvictableIdleTimeMillis=5000
    dataSource_secondary.properties.timeBetweenEvictionRunsMillis=60000
    dataSource_secondary.properties.testOnBorrow=true
    dataSource_secondary.properties.testWhileIdle=true
    dataSource_secondary.properties.testOnReturn=true
    dataSource_secondary.removeAbandoned=true
    dataSource_secondary.removeAbandonedTimeout=180000
  5. 別のデータソースを追加するには、以下の操作を実行します。

    1. セカンダリデータソースをコピーします。

    2. secondary を、tertiary または適切で一意な任意のサフィックスに置き換えます。

    3. 追加したデータソースのデータベース情報を更新します。

    4. 追加したデータソースのパスワード暗号化コーデックを追加します。

      サンプルコード

      dataSource_tertiary.url = jdbc:firebirdsql://<ip address>/3050:SOLUTIONINFO?lc_ctype=UTF-8
      dataSource_tertiary.driverClassName = org.firebirdsql.jdbc.FBDriver
      dataSource_tertiary.dialect = org.hibernate.dialect.FirebirdDialect
      dataSource_tertiary.username = framework
      dataSource_tertiary.password = ENC (mna6C4NkloGNVSx4ry08RA==)
      dataSource_tertiary.properties.validationQuery = select 1 from RDB$DATABASE
      dataSource_tertiary.pooled = true
      dataSource_tertiary.properties.maxActive = 15
      dataSource_tertiary.properties.maxIdle = 1
      dataSource_tertiary.properties.minIdle = 1
      dataSource_tertiary.properties.minEvictableIdleTimeMillis=5000
      dataSource_tertiary.properties.timeBetweenEvictionRunsMillis=60000
      dataSource_tertiary.properties.testOnBorrow=true
      dataSource_tertiary.properties.testWhileIdle=true
      dataSource_tertiary.properties.testOnReturn=true
      dataSource_tertiary.removeAbandoned=true
      dataSource_tertiary.removeAbandonedTimeout=180000
      dataSource_tertiary.passwordEncryptionCodec=com.lexmark.utils.PBEWithMD5AndDESCodec
  6. 新しいデータソースが追加された場合は、アプリケーションサーバーから <install_path>\apps\lpm\WEB-INF\classes フォルダを参照します。ここで、 <install_path> は、LPM のインストールパスです。

  7. テキストエディタを使用して、app-production-config.properties ファイルを開きます。

  8. 3 番目のデータソースをポイントする必要があるデータベース情報を更新します。

    サンプルコード

    datasource.webapp = secondary
    datasource.badge = DEFAULT
    datasource.pin = tertiary
    datasource.stats = DEFAULT
    datasource.printernicknames = secondary
    datasource.printtrackdevices = DEFAULT
  9. LPM ポータルでの更新内容が database.properties ファイルの値と同じであることを確認します。

  10. ファイルを保存します。

  11. Lexmark ソリューションのアプリケーションサーバーサービスを再起動します。

Microsoft SQL Server 名前付きインスタンスを使用する

プリントリリースデータベースに Microsoft SQL Server の名前付きインスタンスを使用する場合は、以下のプロパティに instanceName パラメータを追加します。

たとえば、STATS セクションを以下のように更新する必要があります。

database.STATS.connect=jdbc:sqlserver://network.address.of.mssqlserver;databaseName=CustomerPrDatabaseName;instanceName=nameOfCustomerMSSQLInstance;

database.STATS.dataSource=network.address.of.mssqlserver;databaseName= CustomerPrDatabaseName;instanceName= nameOfCustomerMSSQLInstance;