将 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. 单击确定

将 Unicode 添加到“刷卡打印”表

  1. 从您的计算机,更新“刷卡打印”表。例如:%ProgramFiles%\Lexmark\Solutions\lpm\ms-sql-script\migrate-ascii-column-data-to-unicode.sql

    注意:

    • 当该表不存在时,可能会出现 MP_PRINTERS 表错误。如果您不使用带有打印机别名的电子邮件观察程序,请在脚本中注释掉其行。
    • 当使用“刷卡打印”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. 确认选择“刷卡打印”数据库,然后单击执行

现在,在所有“刷卡打印”表中,varchar 数据类型都更新为 nvarchar,如 PR_JOBS。

更新 Microsoft SQL Server 默认实例的 database.properties 文件

在安装过程中,LPM 2.4 或更高版本在属性文件中创建连接字符串。在 Microsoft SQL Server 中手动创建“刷卡打印”数据库,然后运行 LPM 独立安装程序。此过程使用正确的信息填充 database.properties 文件,然后在 Microsoft SQL Server 中自动创建“刷卡打印”表。

  1. 从“Lexmark LDD 管理控制台”,设置应用程序服务器脱机。

  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 LDD 管理控制台”,设置应用程序服务器脱机。

  2. 从应用程序服务器,浏览至 <install_path>\apps\lpm\WEB-INF\classes 文件夹,其中 <install_path> 是 LPM 的安装路径。

  3. 使用文本编辑器,打开 database-production-config.properties 文件。

  4. 更新默认或辅助数据源所指向的数据库信息。

    Sample code

    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. 使用第三或任何适当且唯一的后缀替换辅助

    3. 更新添加的数据源的数据库信息。

    4. 为添加的数据源添加密码加密编解码器。

      Sample code

      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. 更新必须指向第三个数据源的数据库信息。

    Sample code

    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;