Monday, June 22, 2009

SBL-DBX-00083: Unable to start due to incorrect system preference setting

No Parameter has been changed on the Siebel Server and no settings has been touched and suddenly this error started coming while running "Database Extract" component. So the way everybody's next step is to search for "SBL-DBX-00083" in Metalink, I also tried the same thing and very easily got to know that the solution for this problem can achieved by following the below steps :

a) Go to "Administration - Application -> System Preferences"
b) Query for : "Docking: Transaction Logging" parameter and change the value to "True"
c) Restart the Siebel Server
d) Restart the "Transaction Processor" component.

You must be thinking when the resolution is already available in Metalink, then why I am explaining that here..... :), because there is something new I observed.

Let me tell you what exactly happened and I think you might be interested in reading that. When I went to "Administration-Application -> System Preferences" view and queried for "Docking: Transaction Logging" parameter, I found none.
So I thought it might not be there (just a guess), finally I decided to create a new one with the value "TRUE". Hope I am going into the right direction as I was just following what is written in Metalink. After that restarted the Siebel Server and want to check if "Transaction Processor" component was running, but it wasn't. So I just restarted it, but I saw that the "Transaction Manager" has again got errored out with the error : "SBL-TXP-00011: Unable to Start the APIs". hmmmmm... I haven't got rid of one error and I found another one. This is what Siebel world is :)

Again went to the Support Web to check for the resolution and this is something strange now. The resolution for this error is also the same that I need to have "Docking: Transaction Logging" parameter to "TRUE". But I have already created that one, right?

I am not sure what is going on? Why Siebel is not accepting the parameter value that I have just mentioned under System Preferences view?

Idea came into my mind and here below is what it was :

a) Go to Adminitration-Application -> System Preferences view.
b) Do a "About View" to check for the Business Component Name. It was "System Preferences".
c) Go to Siebel Tools, check for the table name. It was "S_SYS_PREF".
d) Run the below query :
Select * from siebel.s_sys_pref
where sys_pref_cd like 'Dock%'
I got surprised, when I saw two records returned with the following names :

a) Docking:Transaction Logging with Value = "FALSE"
b) Docking: Transaction Logging with Value = "TRUE"

Can you observe the difference in the name of the parameters above two. Second one have a space after "Docking: ".

That means the parameter was already existing but not displayed on the UI and by mistake I have created a new one. So I deleted the one I created from UI and changed the value for the exiting one from backend like this :
update siebel.S_SYS_PREF
set val = 'TRUE'
where sys_pref_cd like 'Dock%'

restarted the Siebel Server and found that Transaction Processor is also running fine. Tried with a new Database Extract again and it went fine.

Be careful from now on, it may happen with you as well. If something is not available on the UI, that doesn't mean it is not available in the database. :)

Full Compilation of Vanilla Respository Errors out

Sound strange, isn't it !!!

If I would say that I have just done the new Local Database Extract from fresh Vanilla Repository being setup for the new Env, and its full compilation is erroring out, nobody will agree to this. I am using Siebel 8.1 version.

To replicate it, follow the steps :

1. Create a job for "Database Extract" with the following parameters :
Client Name = LoginName
Extract all Repository Tables = TRUE

2. Re-initialize the Local Database.
a) Rename "sse_data.dbf" file in <_toolsdir>/Local folder to some another name.
b) Connect to Siebel Tools and click "Yes", when asked for initializing new database.

3. Do a Full Compile.

The error I got was :
Script compilation failed at line 25 in procedure 'Execute':
Syntax error at Line 25 position 1:Expected '}'
(SBL-SCR-00128)
Let me tell you the possible reason for this. If you have observed the parameter name : "Extract all Repository Tables " has been set to TRUE while database extract, what it does is, loads the local respository file (sse_data.dbf) with all the repository contents and saves the developer time as he doesn't require to do a "Full Get" once database get initialized. I used to use this parameter often but seems like due to this parameter some junk script is getting extracted into the local database due to which Full Compilation is failing.

So, I just changed its value to "False", extracted the database and then initialized the new database and done a Full Get. After that I tried Full Compilation again. Everthing worked fine now.

Thursday, June 18, 2009

Error while Siebel Local Database Initialization

Today, I tried intializing the Siebel local database for my Siebel Tools, but everytime getting the error :

Cannot open connection to <_siebelserverhostname>::5047. The Synch Manager component on the server is most likely unavailable.
The connection was refused by server . No component is listening on port 5047.


It seems to happen due to the following reason :

a) Either "Synchronization Manager" component is not running.
b) Siebel Tool's CFG file doesn't contain the correct Sync Port Number.

Alright, lets check it out where the problem lies.

Go to "Administration - Server Management -> Enterprises" and select the Siebel Server on which "Synchronization Manager" component is enabled. And I found that the component was running fine.

Now the next step is to check for the Sync Port Number. As it is already mentioned in the error that there is no listener on port 5047, that means Siebel Tool's CFG is requesting on port 5047 for synchronization. To confirm whether it is correct or not, follow the below steps :

a) Go to "Administration - Server Configuration -> Enterprises -> Component Definitions" view and query for "Synchronization Manager" component.

b) Under the Component Parameters applet, query for "Static Port Number" and check for the value.

To my surprise, I found that the port number was 5048. I think I got the resolution of the problem.

To correct the sync port number in Siebel Tool's CFG, go to "[Local]" section in the CFG and change the value for "DockConnString" parameter with the updated sync port number.

Old Parameter
DockConnString = <_siebelserverhostname>::5047

New Parameter
DockConnString = <_siebelserverhostname>::5048

Again tried initializing the local database and everything worked fine.

Hope this helps !!