System Down DB password expired

เจอเคสใช้งานอยู่ดี ๆ ก็ login เข้าใช้งานระบบไม่ได้ จึงเข้าไปดู log พบว่าไม่สามารถ Connect Database ได้

ใน SystemOut.log มี message ดังนี้

[ERROR] [] [] BMXAA6421E – The system could not connect to the JDBC source: jdbc:db2://DBHOSTNAME:50005/maxdb76[jcc][t4][2012][11248][3.69.71] Connection authorization failure occurred. Reason: Password expired. ERRORCODE=-4214, SQLSTATE=28000
[ERROR] [] [] BMXAA6538E – Failed to initialize MAXIMO business object services.
psdi.util.MXSystemException: access#DBConnectFail

สาเหตุคือ Password maximo user (database user) Expired.

ทำการแก้ไขได้โดย Reset Password ใหม่ (ใช้ password เดิม) และทำการ check Password never expires เพื่อไม่ให้เกิดเหตุการณ์นี้อีก

Read More

[BigFix] Deploy Software Information

เวลา Deploy Software Package ไปยัง Client

BESClient จะทำการเก็บ ไฟล์ Software Package ที่แตกไว้ที่ Folder BES Client\__BESData\actionsite\__Download

Read More

Maximo Add new Jar to Library

ได้รับโจทย์ในให้ทำการเขียน Java Custom เพื่ออ่าน File Excel จึงมีความจำเป็นต้องใช้ Library ข้างนอก ซึ่งโดยปกติมันจะเป็น Jar file มาให้

ในขณะที่ทำการ Test Jar ไฟล์นั้น สามารถทำด้วยวิธีการ Hot Deploy ตามนี้

  1. ไปที่ folder <WebSphere>\AppServer\profiles\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear
  2. เข้าไปที่ lib Folder
  3. copy Jar File ที่ต้องการเพิ่มเข้าไปใน Folder นี้
  4. กลับไปที่ folder MAXIMO.ear
  5. แตกไฟล์ businessobjects.jar เป็น Folder ชื่อ businessobjects.jar
  6. เปลี่ยนชื่อ file businessobjects.jar เป็นชื่ออื่น เช่น businessobjects.orig
  7. เข้าไปยัง Folder businessobjects.jar\META-INF
  8. แก้ไขไฟล์ เพิ่มชื่อ lib ที่เพิ่มเข้าไป
  9. จากนั้น Restart MXServer


สำหรับการ build ear ไฟล์ให้ทำตามขั้นตอนนี้

1. Place the below Jar File in the path ibm\SMP\maximo\applications\maximo\lib
2. Modify the file buildmaximoear-build.xml under path IBM\SMP\maximo\deployment
Place the path of the new Library file in the tag <property name=”maximo.businessobjectsclasspath” value=”${maximo.propertiesjarfile}
3. Similarly modify the file buildmaximoear.xml under the path IBM\SMP\maximo\deployment
4. Build ear and Deploy ear


อ้างอิง :

Read More

Maximo custom alert message box

ในกรณีที่ต้องการจะเรียก message box จาก Custom Class ให้ทำการ New Message ใน Database Configuration ดังรูป


จากนั้นใน Class ทำการเขียน Function เพื่อเรียกใช้งาน Messagebox

private void msgbox(String msg)


String params[] = {msg};

this.clientSession.showMessageBox(this.clientSession.getCurrentEvent(), “custmsg”, “CustomMessage”, params);



เวลาเรียกใช้งานสามารถ call msgbox ได้เลย เช่น

msgbox(“Action has been completely.”);

Read More

Maximo write custom log

เวลาเขียน Custom Class หากต้องการเขียน log ลงไป เพื่อทำการ Debug ให้ทำการ Configure ที่ Logging Application ดังนี้

1.Navigate to System Configuration -> Platform Configuration -> Logging
2.Click on New Row under Root Logger
3.Enter the following:
Logger: Customization
Log Level: DEBUG
Key: log4j.logger.maximo.Customization
Inherited Appenders: Console,Rolling
Enable Active checkbox.
4.Save the logging properties
5.Click on Select Action -> Apply Settings


จากนั้นใน Java Class ให้เขียน Function ขึ้นมาเพื่อเขียน log เช่น


private static void log(String msg)private static void log(String msg) {

MXLogger myLogger = MXLoggerFactory.getLogger(“maximo.Customization“);

if (myLogger.isDebugEnabled())





แล้วเวลาใช้ก็เรียน Function log เช่น

log(“Write Hello World”);


Read More

[SCCD] Maximo Dashboard (Auto Refresh)

1. สร้าง Security Group ขึ้นมา 1 กลุ่ม ไว้สำหรับเป็น user ในการเปิดดู Dashboard นี้ (จากตัวอย่างตั้งชื่อเป็น REFRESHSCNTR)

2. ที่ System Properties แก้ค่า webclient.exitwarn ให้เป็น 0

3. แก้ไขไฟล์ที่ SMP\maximo\applications\maximo\maximouiweb\webmodule\webclient\components\startcenter-options.jsp
โดยแก้ไขตามนี้ (900000 คือ จำนวน ms ที่ต้องการให้ auto refresh ทุก ๆ 15 นาที)

<%@ include file=”../common/simpleheader.jsp” %>

<%@ page import=”psdi.webclient.beans.startcntr.*” %>


StartCenterOptions scOptions =((StartCenterOptions)control);







    String refreshUrl = wcs.getMaximoRequestURI() + “?event=loadapp&value=startcntr&” + wcs.getUISessionUrlParameter() + wcs.getCSRFTokenParameter();

    SessionContext sessionContext = new SessionContext(wcs);

    StartCenterAppBean startcenter = (StartCenterAppBean)sessionContext.getCurrentApp().getAppBean();

    psdi.mbo.MboRemote mbo = startcenter.getMbo();


    String where = “groupname = ‘REFRESHSCNTR‘ and userid in (select userid from maxuser where personid = ‘” + mbo.getUserInfo().getPersonId() + “‘)”;

    psdi.mbo.MboSetRemote groups = mbo.getMboSet(“$GROUPUSER”, “GROUPUSER”, where);


    if ( !groups.isEmpty() )



    <script type=”text/javascript”> setTimeout(‘window.location=”<%=refreshUrl%>”‘ ,900000); </script>




catch (Exception e)





<table role=”presentation”

สีน้ำเงินคือ code ที่เพิ่มขึ้น / สีส้ม ขึ้น code เดิม

4. ทำการ Rebuild EAR และ Redeploy ใหม่

5. Assign User ที่ต้องการให้ dashboard เป็น auto refresh

Reference :

Read More

[SCCD] Finding Parameter Value of Report Schedule

Some report have parameter to filter the result records. But when these reports have been set as schedule we can not see it in the system. However, we can see these value for each parameter in the database.

Firstly you can query data in REPORTSCHED table. You will see report schedule information. Then notice the CRONTASKNAME and INSTANCENAME.

These 2 values are also in CRONTASKPARAM table. So you can see parameter value in this table by using where CRONTASKNAME and INSTANCENAME.


Read More

[SCCD] Update only Dojo (Self Service Center) with hot deployment

I’ve experience to modify .js in dojo folder. When I changed file using hot deployment, it doesn’t work (nothing change). Then I used steps below to build new javascript folder and paste to installedApps for hot deployment.

1. Backup [SMP folder]\maximo\applications\maximo\maximouiweb
2. Rename current maximo.ear in D:\IBM\SMP\maximo\deployment\default
3. Build maximo.ear
4. After build new ear, you will see new folder dojo-yyyymmdd-xxxx and tpae-yyyymmdd-xxxx
under [SMP folder]\maximo\applications\maximo\maximouiweb\webmodule\webclient\javascript
5. Go to [Websphere profiles folder]\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear\maximouiweb.war\webclient\
6. Backup javascript folder
7. Copy [SMP folder]\maximo\applications\maximo\maximouiweb\webmodule\webclient\javascript to
[Websphere profiles folder]\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear\maximouiweb.war\webclient\javascript
8. Restart MAXIMO Application Server


Read More

[SCCD] Access maximo without /maximo

You can make your base web address to http://hostname/ instead of http://hostname/maximo using IBM HTTP server configuration, without restarting Maximo/SCCD.
1. Open the WAS console–>Servers–>WebServers –>webserver1 .

2. Click the Edit button next to the httpd.conf file to edit the configuration file of the webserver.

3. Remove # in the line: LoadModule rewrite_module modules/mod_rewrite.mod
With removing # you enable this rewrite module.

4. Add the following at the end of the file config file:

RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/$ /maximo/ [R=301,L]

5. Generate plugin, Propagete plugin and restart webserver.
Try now the address: http://hostname/ , and your Maximo SCCD login screen will welcome you.


Thanks Tamas Kubicsek

Reference :

Read More

[SCCD] Add Relationship to Audit Table

Normally, we can’t not manage audit tables via database configuration application.

Since it filter out by java bean class to show only managed objects.

So we can’t add relationship via database configuration.

But I found a trick to display audit tables in database configuration !!

Read More

Read More