Appreciations accepted

Vladlen Litvinov, the author: If you have some job offer for me, I'm ready to discuss it. View Vladlen Litvinov's profile on LinkedIn

Password

Wednesday, December 12, 2012

Help yourself or the bugtracking in WebSphere products for Dummies (Part 1)

I seek and tired to fight with vendor’s Support Team. Don’t hope to it.
Either your problem will be solved next century or never.
So in this article I show an example of a self-bugtracking in WebSphere products.

After upgrading of environments of IBM BPM 8.0.0 to 8.0.1 we have got a bug.
In the Process Admin console, we see the blank frame after clicking to the «Exposing» hyperlink.
There is no any information about exposing objects here.
 

 

 
 
 
 
 
 
 
 


 





Stage 1. Analysis

Let’s see the file SystemOut.log (You can find it in the folder /<BPM_Home>/profiles/<YourProfileName>/logs)
What is there?

[12/11/12 12:41:22:998 MSK] 000001f9 wle           E   CWLLG1274E: An exception occurred.
                                 com.lombardisoftware.client.delegate.BusinessDelegateException: Name is null
bla bla bla
 
          ... 44 more
Caused by: java.lang.NullPointerException: Name is null
          at java.lang.Enum.valueOf(Enum.java:206)
          at com.lombardisoftware.data.UcaExposedItem$UCAType.valueOf(UcaExposedItem.java:26)
          at com.lombardisoftware.server.ejb.runtime.RuntimeServicesCore$27.extractData(RuntimeServicesCore.java:2773)
          at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:653)
          at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)
          at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)

bla bla bla

There are three magic phrases «Name is null», «UCAType.valueOf», «JdbcTemplate.execute» here.
Let’s think.
May be it means that UCAType = null (or empty) during one of SQL query, it is not?

OK. We have to look for this query.

Stage 2. Tracing

Open WAS IS Console (https://<host>:<port>/ibm/console) 
Click Troubleshooting - Logging and tracing - server1 - Change log detail levels.
Change  Runtime tab (It permits to change the log level "on fly", without restart of the server).
Find org.springframework.jdbc.core in All Components list (red colour in our log)
Click it and select All Messages and Traces.
Log level is changing to *=info: org.springframework.jdbc.core.*=all
Press OK for accept.
trace.log file will be created this moment. 

Now we are reproducing our bug and checking the trace.
We see the same error message and analyze the previous messages.

[12/11/12 13:28:22:990 MSK] 000001f9 JdbcTemplate  1 org.springframework.jdbc.core.JdbcTemplate execute Executing prepared SQL statement [
                select
                 f.favorite_id as favoriteId,
                 f.enabled as enabled,
                    f.exposed_process_type as bpdExposedType,
                    g.group_name as groupName,
                    g.description as groupDescription,
                    g.group_type as groupType,
                    b.bpd_id as bpdId,
                    b.name as bpdName,
                    p.process_id as processId,
                    p.name as processName,
                    p.exposed_type as processExposedType,
                    s.scbd_id as scoreboardId,
                    s.name as scoreboardName,
                    r.report_id as reportId,
                    r.name as reportName,
                    e.epv_id as epvId,
                    e.name as epvName,
                    uca.name as ucaName,
                    uca.uca_id as ucaId,
                    uca.sched_type,
                    uca.sched_event_name,
                    ucat.description as ucaType,
                    ws.name as wsName,
                    ws.web_service_id as wsId
                from lsw_favorite f
                    left outer join lsw_usr_grp_xref g on f.group_id = g.group_id
                    left outer join lsw_process p on f.cached_process_version_id = p.version_id
                    left outer join lsw_bpd b on f.cached_bpd_version_id = b.version_id
                    left outer join lsw_scbd s on f.cached_scbd_version_id = s.version_id
                    left outer join lsw_report r on f.cached_report_version_id = r.version_id
                    left outer join lsw_epv e on f.cached_epv_version_id = e.version_id
                    left outer join lsw_uca uca on f.cached_uca_version_id = uca.version_id
                    left outer join bpm_uca_event_type ucat on ucat.uca_event_type_id = uca.uca_event_type_ref
                    left outer join lsw_web_service ws on f.cached_ws_version_id = ws.version_id
                where f.snapshot_id=? and f.tip='F'
            ]


[12/11/12 13:28:22:991 MSK] 000001f9 DataSourceUti 1 org.springframework.jdbc.datasource.DataSourceUtils doGetConnection Fetching JDBC Connection from DataSource
[12/11/12 13:28:22:992 MSK] 000001f9 StatementCrea 1 org.springframework.jdbc.core.StatementCreatorUtils setParameterValueInternal Setting SQL statement parameter value: column index 1, parameter value [b6d03ed6-528c-4017-a0cc-90f1dfd7c90d], value class [java.lang.String], SQL type unknown


You paid your attention to ucaType, didn't you?
We can insert the parameter value into the query and execute this query using our BPM database.

(to be continued...)

No comments:

Post a Comment