Siebel Open UI >  Transaction Merger throws 'SBL-GEN-03001: Error allocating oldValuesArr' with Open UI Remote Mobile Clients

Transaction Merger throws 'SBL-GEN-03001: Error allocating oldValuesArr' with Open UI Remote Mobile Clients

 

Siebel Remote - Version 8.1.1.10 [23021] and later

Using standard Siebel SRF, Transaction Merger is stopped operating with the following errors.

 

"Trace TracingInfo 3 00000003541b710b:0 2014-09-19 13:34:41 Skipped TxnHeader logging before inter-conflict resolution
SQLSlowQuery Statement 4 00000003541b710b:0 2014-09-19 13:34:41 SELECT
t.CONFLICT_ID, t.CREATED, t.CREATED_BY, t.DB_LAST_UPD, t.DB_LAST_UPD_SRC,
t.LAST_UPD, t.LAST_UPD_BY, t.MODIFICATION_NUM, t.MSG_ID, t.ROW_ID,
t.STATUS_VAL, t.USER_ID
FROM SIEBEL.S_BCSTMSG_USER t WHERE ROW_ID = ?"

  

and

"GenericLog GenericError 1 00000003541b710b:0 2014-09-19 13:34:41 (mrginterconfl.cpp (636) err=3001 sys=3064) SBL-GEN-03001: Error allocating oldValuesArr"     

 

Performing additional analysis we also found that S_BCSTMSG_USER table has never been routed to mobile clients. There is no such rule in Dock Objects. But the table is used in the Broadcast Messaging functionality when a user clicks and reads a broadcast message (Notification) in Open UI only.

 

CAUSE


Reproduced the customer behaviour.


Re-produced this issue on a test environment.

1). Install 8.1.1.10 or later with Open UI enabled.
2). Enable Siebel Remote component group
3). Extract Local database  (SADMIN)
4). On the Server create a broadcast which goes to everybody

Sitemap> Administration>Communications > Message Broadcast> "New"

5). On the Local Client (Open UI), synchronize.  
6). Click the Notification icon and read the message.
7). Review the TxnMerger log file

you will see

"Trace TracingInfo 3 00000003541b710b:0 2014-09-19 13:34:41 Skipped TxnHeader logging before inter-conflict resolution
SQLSlowQuery Statement 4 00000003541b710b:0 2014-09-19 13:34:41 SELECT
t.CONFLICT_ID, t.CREATED, t.CREATED_BY, t.DB_LAST_UPD, t.DB_LAST_UPD_SRC,
t.LAST_UPD, t.LAST_UPD_BY, t.MODIFICATION_NUM, t.MSG_ID, t.ROW_ID,
t.STATUS_VAL, t.USER_ID
FROM SIEBEL.S_BCSTMSG_USER t WHERE ROW_ID = ?"

and

"GenericLog GenericError 1 00000003541b710b:0 2014-09-19 13:34:41 (mrginterconfl.cpp (636) err=3001 sys=3064) SBL-GEN-03001: Error allocating oldValuesArr"

 

when a user clicks and reads a broadcast message (Notification) in Open UI only. It looks like Open UI tries to get a record from S_BCSTMSG_USER table. As the table is empty on mobile client side, a new record has been created. And
this new record results in the fault of Transaction Merger

SOLUTION

Logged Product Defect

Bug 19662231 - TXN MERGER FAILS WITH SBL-GEN-03001 AFTER CLIENT READS BROADCAST IN OPEN UI

This is targeted to be fixed in a later release

 

If an occurrence has already happened, you will need to 'fix' the occurrence.

 

There are two ways of fixing an occurrence.

 

1). If you are able to identify the offending broadcast message, then the simplest method of fixing the Transaction Merger is to delete the Broadcast message on the Siebel Server

Sitemap> Administration > Communications > Message Broadcast > [highlight the message] and "Delete"

and re-start the Transaction Merger component.

 

However it may not be possible to always identify the offending message so in this case you can try repeating these steps over and over again or try option (2)

 

2). You will need to delete the offending transaction from the dx file.

Workaround :

At present there are two workarounds which you can employ to avoid this situation happening in the first place, ie. limit the ability of the Siebel Remote Client to read the notifications or avoid sending the notifications altogether (details listed below) OR You can also decide to do nothing and just fix any occurrences that happen from time to time.

 

1). To disable the Remote Client's notification pane, so that it cannot read messages


a). Set *.cfg file parameter

ShowMessageBar=False

Notification pane disappears on Remote Client Open UI.

And because the Remote Client cannot see the notification they cannot click on it thereby creating the broken transaction.


OR another option.


b). in the Users Preferences of Clients you can select or unselect "Show "   to show the notifications or not.

This is described in

Siebel Bookshelf - Siebel Fundamentals for Siebel Open UI Siebel Innovation Pack 2014>Customizing Aspects of Notifications


Same effect. The Notification panes disappears. 

 

2). To disable message broadcasting for a Siebel Server application

a. Navigate to the Administration - Server Configuration screen, then the Enterprises view.
b. From the Enterprise Servers list, select the enterprise server that runs the Siebel application with message broadcasting settings you want to modify.
c. Click the Component Definitions view tab, then select a component with a Component Type value of Application Object Manager.
d. In the Component Parameters applet, select the Application Message Bar Flag parameter, and type the appropriate value in the Value field. 

The value for your case may be FALSE or User Enabled.

FALSE
Specify this value if you want to always disable message broadcasting. For a value of FALSE, the message bar or the Notification icon and notification panes do not appear on the screens of users.
For a Siebel Web Client deployment, the Siebel Application Server does not push messages to users. For Mobile Web Client users, messages are not synchronized.

User Enabled
Specify this value if you want users to enable or disable message broadcasting in their user preferences.
If a Web client user disables message broadcasting, the Siebel Application Server does not push messages to the user. If a Mobile Web Client user disables message broadcasting, messages are not synchronized.
For a value of User Enable, the update interval is a user preference. For more information about this user preference, see Siebel Fundamentals.
If the update interval is less than the SessionTimeout set in the CFG file of the Siebel application, then sessions never time out.