IBM Support

Same schema name for Master and Test DB of MS SQL Server is causing issues with PEM Standard installation on Podman

Troubleshooting


Problem

The database server hosts multiple SQL Server database instances.
PEM Standard installation on Podman refuses to start because the standard SQL Server schema "dbo" is the same even if the database name is different.
Database settings in Setup.cfg:
db_port="1433"
db_host="dbserver"
db_name="pemdb"
db_schema="dbo"
db_user="pemdb"
db_password="Password123"
db_driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
testmode_db_port="1433"
testmode_db_host="dbserver"
testmode_db_name="pemtestdb"
testmode_db_schema="dbo"
testmode_db_user="pemtestuser"
testmode_db_password="Password123"
testmode_db_driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
Note that "db_name" and "testmode_db_name" are different.
Attempting to start PEM results in the error.

Symptom

Error while installing PEM Standard:
$ podman run -e application=migrator -v $(pwd)/Setup.cfg:/opt/IBM/Resources/Setup.cfg:z -v $(pwd)/passphrase.txt:/opt/IBM/Resources/passphrase.txt:z -v $(pwd)/logs/:/opt/IBM/Migrator/logs/:z cp.icr.io/cp/ibm-pem/pem:6.2.1.2
The application type is software, executing scripts to start the container.
db_schema and testmode_db_schema should not be same. Shutting down the container.
ERROR: Container failed. Please check the logs for more information.
PEM needs to include database name as part of checking whether the database connections are the same.
the startup script inside the PEM container halts before it even starts the migrator.
The issue can be identified by examining the startup scripts present in the 6.2.1.2 container:
$ podman run -it --rm cp.icr.io/cp/ibm-pem/pem:6.2.1.2 /bin/bash
$ grep 'db_schema' *.sh
common.sh: if [[ $db_schema == $testmode_db_schema ]]; then
common.sh: echo "db_schema and testmode_db_schema should not be same. Shutting down the container."
runAgent.sh: if [[ $db_schema == $testmode_db_schema ]];then
runAgent.sh: echo "db_schema and testmode_db_schema should not be same. Shutting down the container."
runMasterKeyReGenerator.sh: if [[ $db_schema == $testmode_db_schema ]];then
runMasterKeyReGenerator.sh: echo "db_schema and testmode_db_schema should not be same. Shutting down the container."
runMigrator.sh: if [[ $db_schema == $testmode_db_schema ]];then
runMigrator.sh: echo "db_schema and testmode_db_schema should not be same. Shutting down the container."
runPemPrPP.sh: if [[ $db_schema == $testmode_db_schema ]];then
runPemPrPP.sh: echo "db_schema and testmode_db_schema should not be same. Shutting down the container."

Cause

PEM is designed to have different schema name in db_schema and testmode_db_schema.

Environment

PEM Standard 6.2.1.2 installation on Podman.

Resolving The Problem

This fix to this issue will be released in 6.2.0.6, 6.2.1.3, 6.2.2.1 builds (tentative).
Customer would be able to use the same default dbo schema for Master DB and Test DB for MS SQL Server as long as databases are installed on different servers after the fix is released.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB59","label":"Sustainability Software"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSFG8Z","label":"IBM Sterling Partner Engagement Manager Software"},"ARM Category":[{"code":"a8m0z000000boKAAAY","label":"Deployment"}],"ARM Case Number":"TS011889951","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Product Synonym

PEM;PEM Standard;PEM Essentials

Document Information

Modified date:
18 April 2023

UID

ibm16984571