Adminui Fails to start after a Successful installation with ERROR XBM0X: Supplied locale description is invalid

book

Article ID: 224397

calendar_today

Updated On:

Products

SITEMINDER

Issue/Introduction

12.8 SP5 Adminui fails to create the Derby database after installation on Windows server 2019. 

Cause

- After looking into this , it seems that the Derby database is failing to get created after starting the Adminui for the very first time after installation (install logs clean) 
- Looking at the logs , it seems we are failing with the below 

12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230) Caused by: ERROR XJ041: Failed to create database 'D:\PROGRA~1\CA\SiteMinder\adminui/standalone/data/derby/siteminder/taskpersistence', see the next exception for details.
12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230)  at org.apache.derby.iapi.error.StandardException.newException(Unknown Source
12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230)  at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230)  ... 56 more
12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230) Caused by: ERROR XBM0X: Supplied locale description 'en_029' is invalid, expecting ln[_CO[_variant]]
12:20:19,991 ERROR [stderr] (ServerService Thread Pool -- 230) ln=lower-case two-letter ISO-639 language code, CO=upper-case two-letter ISO-3166 country codes, see java.util.Locale.

Looks like the Derby database script is failing due to the ---> Caused by: ERROR XBM0X: Supplied locale description 'en_029' is invalid, expecting ln[_CO[_variant]]
- Researching this , found out that the lodale 'en_029' refers to "English Caribbean"
- Verified client Environment set to "English Caribbean" under Region Setting 

- performed the following with client 
1) changed the Region to English US instead of  "English Caribbean"
2) Changed the main language from "English Caribbean" to English US 
3) Restarted the system 
4) started the Adminui but still the same issue / Error 

Issue Still persists , how can we resolve this ? 

Environment

Release : 12.8.05

Component : SITEMINDER WAM UI

Resolution

############ Fix Steps ###############

Steps for the Dev Fix

================

1) Stop the Admin UI, if it is in running mode.

2) Go the  "<AdminUI_Installed_Location>siteminder/adminui/standalone"

3) Remove the "data" folder and "tmp" folder

4) Go the  "<AdminUI_Installed_Location>siteminder/adminui/bin"

 

For Linux

========

5) Take back up of the existing  "standalone.conf".

6) Add the below  entry in "standalone.conf", after the existed  JAVA_OPTS settings.

 

JAVA_OPTS="$JAVA_OPTS -Duser.country=US -Duser.language=en" 

 

 

For Windows

===========

5) Take back up of the existing  "standalone.conf.bat".

6) Add the below  entry in  "standalone.conf.bat", after the existed   JAVA_OPTS settings.

 

set "JAVA_OPTS=%JAVA_OPTS% -Duser.country=US -Duser.language=en"

 

Reason for the Issue 

=================

 In Java, there is a class called "public Locale(String language, String country)",    which takes language and country code.

 country can be   An ISO 3166 alpha-2 country code          (or)     a UN M.49 numeric-3 area code. See the Locale class description about valid country values.

 

In the Environment setup it's taking a UN M.49 numeric-3 area code.  For Caribbean, the country code = 029.

So java, giving locale as en_029. This locale is not supported by the Derby DataBase. Due to that , you are getting the exception @ startup,when trying to connect Derby DB.
 
Reproduced the issue, by adding the  country=029   setting to the JVM,  as argument as below in the standalone.conf
 
JAVA_OPTS="$JAVA_OPTS -Duser.country=029 -Duser.language=en"