In some cases Siebel servers not started after bounce and our investigation lead us to conclusion that clean bounce of Siebel Severs is must whenever below scenario is being faced:
- Siebel Server is not starting up after bounce
- Getting SISNAPI error for MQ components
- Multithreaded Components are not starting up after bounce
[Error Codes: SBL-GEN-00255, SBL-OSD-00220, SBL-OSD-02006, SBL-OSD-02011, SBL-OSD-00204, SBL-ADM-02049, SBL-GEN-00001]
What causes this problem?
Sometimes you can face the issue that Siebel Server threads fail when using start_server all.
- On UNIX m/c there has been a scenario that Siebel server got shutdown without having run the stop_server script. The stop_server script should remove osdf.<enterprise_name>.<server_name> file that resides in the $SIEBEL_ROOT/siebsrvr/sys directory.
- It can also happen when the svc.siebsrvr.<enterprise_name>:<server_name> was duplicated under $SIEBEL_ROOT/siebsrvr/sys directory.
When you specify the ALL argument, the start_server script searches for all files under $SIEBEL_ROOT/siebsrvr/sys in the format svc.siebsrvr.* and parses it to identify the Enterprise name and the Server name.
- STR1: Enterprise name
- STR2: Siebel Server name
The start_server script skips all filenames ended with the .bak extension, because they are considered backup files. Then it starts the service and creates the OSDF file based on these parsed names.
If more than one OSTD file exists, the problem will occur. Let’s have two instances of OSDF files. (Ignore files with .bak extension)
The problem is that, when the second instance is started, the OSDF file is overwritten, and the information used by Siebel about the memory structures used by the first instance is lost. The second instance will conflict with the first one, and the processes end up failing.
Steps for Clear Bounce
To overcome this issue, we need to take clean bounce of the environment. PFB the steps to take a clean bounce of the Siebel server:
1. Shutdown the Siebel Server and run the following commands to clean all structures that may remain:
- % stop_server ALL
- % reset_server -e <enterprise_name> <server_name>
- % siebclean -f $SIEBEL_ROOT/siebsrvr/admin/<enterprise_name>.<server_name>.shm -q
- % cleansync -f $SIEBEL_ROOT/siebsrvr/sys/osdf.<enterprise_name>.<server_name> -d
- % siebctl -r $SIEBEL_ROOT -S siebsrvr -i <enterprise_name>:<server_name> -k -q
- % mwcleanup -silent 2>/dev/null
2. Ensure no Siebel processes are running and check that there are no semaphores or shared memory segments allocated for the UNIX user who owns the Siebel Server installation:
- % ps -ef | grep <username>
- % ipcs –b
3. If there are any processes, shared memory segments or semaphores stuck in memory, they can be killed by using the following commands, respectively:
- % kill -9 <process_ID>
- % ipcrm -m <shared_memory_segment_ID>
- % ipcrm -s <semaphore_ID>
4. Remove the following files if they still exist:
5. Remove all svc* files or move all of them out from $SIEBEL_ROOT/siebsrvr/sys directory.
6. Recreate the correct svc* file:
- % siebctl -S siebsrvr -i "<enterprise_name>:<server_name>" -a -g "-g <gateway_name> -e <enterprise_name> -s <server_name>>"
7. Restart the Siebel Server:
- % start_server all
Note: If there are still any processes, semaphores or shared memory segments stuck in memory, the machine will need to be rebooted before recreating the svc* file.