Tag Archives: siebel

What Administrators Should Do for Siebel Reporting with BI Publisher?

There are a couple of things you want to perform as Administrators to manage the Siebel Reporting environment and maintain the BI Publisher reports in Siebel. Here is a list of the tasks that the Administrators should be responsible for.

  • Purging Siebel Reports
  • Optimize Siebel Reporting Environment
  • Enabling Logging for Debugging

Purging Siebel Reports

When the users run the Siebel reports all the generated reports output files will be stored on the Siebel database. These files can be opened from the ‘My BI Publisher Reports’ menu. However, at a certain point of time you might want to delete some of the files due to the size of keeping all the reports on the file system and also due to a compliance matter.

You as Siebel Administrator can purge such report files from the Siebel database using filters or by running a workflow process. I’m going to talk about how to set up reports to be automatically or manually purged.

Automatic Purge

You can set up to automatically purge your reports from the Siebel database after a specified time interval. The ‘BIP Delete After Days’ system preference allows you to specify any non-zero positive value that executes the Auto Purge workflow to purge the reports. Based on the value that you enter, the reports are purged from the database after the number of days specified.

To automatically purge reports

  1. Log in to the Siebel application with system administrator privileges.
  2. Navigate to the Administration – Application screen, then System Preferences view.
  3. In the System Preferences list, select ‘BIP Delete After Days’, and change the value to any positive nonzero value.
    By default, the value is set to -1 (minus 1), which means it never purge.


  4. Navigate to the Administration – Server Management screen, then Jobs view.
  5. Add a new job
  6. Click the search icon to select ‘Workflow Process Manager’
  7. Click ‘New’ button to add a Job Parameter to the job
  8. Select Workflow Process Name for the name
  9. Type ‘XMLP Purge Records’ as the value
  10. Click Submit.

Alternatively you can schedule this job to run periodically using the Siebel workflow, see Siebel Business Process Framework: Workflow Guide for the detail.

Manual Purge

When manually purging Siebel reports, you can specify criteria by which the reports are purged. Reports meeting that criteria will be removed from the Siebel database. You can also purge multiple reports together by selecting a date range, the reports that were generated within the specified date range will be purged. If both the report name and the date range are entered, then only those reports with that name and that were generated within that specified date range are purged. You can also purge reports for a specific user by entering his/her user ID as the criteria.

To manually purge a report:

  1. Log in to the Siebel application with system administrator privileges.
  2. Navigate to the Administration – BIP Reports screen, then Purge Administration view.


  3. In the Purge Administration form, you can select a report name, type From Date, To Date, and select User ID. You don’t need to fill all of them. Whatever you enter will be used as a criteria to select the reports to be purged.
  4. Click Run.
    The reports that meet the specified criteria are purged.

Optimizing Performance for Siebel Reports

Now the next topic is to optimize the Siebel Reports runtime environment to have better performance and scalability. There are several attributes that you can use to best fit to your reporting and system requirements from performance and scalability perspective.

Here is a list of the attributes.

  • Report Execution Wait Time
  • Server Request Processor Wait Time
  • Setting Concurrency Parameters
  • Max Fetch Size (DSMaxFetchArraySize) for Large Data Volumes
  • Enabling Scalable Mode
Execution Wait Time

By setting this threshold value you can cancel some of the reports, which would take longer than the specified time duration, to run. In some cases some reports might take a long time and when you have multiple reports taking long time at the same time other users might have to wait for those reports to finish the jobs. Typically such long running reports should be executed at when most of the users are not accessing such as at night time as a batch process, but there is no control to prevent the users to run such reports as long as they have access to them. So you can use this attribute to control such.

Here is a list of the steps to set the Report Execution Wait Time for Siebel Reports

  1. Navigate to the Administration – Application screen, then System Preferences view.
  2. In the System Preferences list, select BIP Report Wait Time, and then change the value to any number greater than 100. By default, the threshold is set to 100 seconds.
Setting the Server Request Processor Wait Time for Siebel Reports

Some times your database doesn’t respond due to heavy duty work currently being performed at the database or simply not available. Or there is a quick temporary issue on the network. Whatever the reason your report request trying to access to the database might not getting any response back. Typically the applications try to reconnect to the database after a certain waiting time. You can control this waiting time with this setting.

Follow the steps below to set the Server Request Processor Wait Time for Siebel Reports

  1. Navigate to the Administration – Server Configuration screen,  Servers, and then Components view.
  2. In the Components list, select Server Request Processor (alias SRProc).
  3. Scroll down and click the Parameters subview, and then click Hidden.
  4. In the Parameter list, select Database Polling Interval, and change value from 10 to 1. The Value on Restart and Default Values are updated as well.
  5. Restart the Siebel Server.
Setting Concurrency Parameters for Siebel Reports

You can set a maximum number of tasks per XMLP Report Server, which is not the BI Publisher Enterprise but it’s the engine that takes care of the report request and response within the Siebel, per a single Siebel server. Also you can set a maximum number of MT (Multi Threaded) Servers per a single Siebel server.

Typical guideline would be:

  • MaxTasks = peak (concurrent users)
  • MaxMTServers = MaxTasks / 100

So, for example, let’s say you have 1000 users accessing to the reporting at the same time then the MaxTasks would be 1000 and the MaxMTServers would be 10. Note that this is a generic guide line and these numbers should not be used as a static number for your environment. Each environment and reporting needs would impact on the above numbers and requires a series of performance testing to come up with the best numbers.

You can follow the steps below to set concurrency parameters for using the GUI

  1. Log in to the Siebel application with administrator privileges.
  2. Navigate to the Administration – Server Configuration screen, Servers, and then Components view.
  3. In the Components list, select XMLP Report Server.
  4. Click on the Parameters view tab and set accordingly.
Optimizing Performance of Siebel Reports for Large Data Volumes

When you have a large data coming back for your reports then you can set a Data Source maximum fetch array size (DSMaxFetchArraySize) profile parameter value to ‘-1’ so that the size is unlimited. But again, this value should be fitting to your specific environment so you might want to increase the value to a certain threshold instead of setting it as unlimited.

You can follow the steps below to optimize performance of Siebel Reports for large data volumes

  1. Navigate to the Administration – Server Configuration screen, Enterprises, and then Profile Configuration view.
  2. In the Profile Configuration view list, select Server Datasource (alias ServerDataSrc).
  3. Scroll down to the Profile Parameters, and then click Advanced.
  4. In the Profile Parameters list, select Datasource maximum fetch array size (alias DSMaxFetchArraySize), and then change the value to -1.
  5. Restart the Siebel Server.
Enabling Scalable Mode for Siebel Reports

When you have a large data volume or have complex XSL transformation logic you might want to enable BI Publisher’s XSLT engine to be scalable so that the engine will transform the raw data to XSL-FO template and generate the final output by using the hard disk instead of loading the file onto the memory space. In this way you can avoid ‘out-of-memory’ related issue at the BI Publisher’s reports generation process. You can enable the scalable mode parameter by configuring the BI Publisher’s configuration file, xdo.cfg file, which is located under the %JRE_HOME%\lib directory, where JRE_HOME is the one used for BI Publisher Enterprise Server.

To enable scalable mode for Siebel Reports

  1. Navigate to the jre\lib installation directory.
    NOTE: The path for the Java installation folder varies depending on where you installed JRE.
  2. Open the xdo.cfg file, and in the <Properties></Properties> tag, use the following syntax to set the Scalable Mode property to true (if not already set):
    <property name=”xslt-scalable”>true</property>
    NOTE: You can set Scalable mode to either true or false.
  3. Save the xdo.cfg file.
  4. Restart BI Publisher Server


There are a few other critical things you can do as an Administrator such as Migrating the reports from Development environment to QA/Production environment, Enabling Logging for Debugging.


How to capture business service inputs for use in Business Service Simulator

Often errors reported in Siebel CRM Application, such unexpected processing results, application error or process crash can be initiated calling a certain custom or standard Business Service (BS).

Analysis of Siebel log / FDR / SARM traces may show that failure of Siebel Object Manager was caused by calling a method of a Business Service.

In this document we want to illustrate how the input arguments of a Business Service that was invoked during execution of the case could be captured in a file,

that can be picked up by the Business Service simulator.

Note: Not all Business Services of Siebel CRM Application could be invoked directly by BS-Simulator.

Usually good candidates for simulation are custom Business Services (server-side scripting), standard EAI Toolset Business Services (EAI Siebel Adapter/EAI UI Data Apdater,

an ASI/UDS, an Outbound WS Proxy, various XML Converters, the EAI Dispatcher,  the EAI Data Transformation Engine and so on) and the “Workflow Process Manager” BS.

Simulation of the “RunProcess” method of the  “Workflow Process Manager” Business Service allows to execute a workflow process process

within the BS-Simulator session, while same method invoked for the “Workflow Process Manager (Server Request)” BS

makes the process execution happen in separate task of the “Workflow Process Manager” server component.


Paths (can be combined) to capture the BS method input arguments in a file, that can be loaded in BS-Simulator.

(A) The .dmp File – input property set stored as XML document

Setting to “True” of the advanced component parameter: “Enable Business Service Argument Tracing” (short alias: “EnableServiceArgTracing“)
allows Siebel Object Manager component task to produce *.dmp files with input arguments for a certain standard business services.

Example of the  command of Server Manager Command line  utility (“srvrmgr“) that amends this parameter for a given component (example: “EAI Object Manager (ENU)“):
change param EnableServiceArgTracing=True for comp EAIObjMgr_enu

Once the parameter is set to “True” one also need to raise the logging level to 5 for tracing of a desired component event type,
to component task to trace arguments of a given Business Service into a *.dmp file.

Following two event types could be found useful:

(1) “EAI Dispatcher Argument Tracing” (short alias: “EAIDispatchSvcArgTrc“)

to let Inbound Web Service Framework component produce  “EAITransportDispatchService_input_args_*.dmp” file with input arguments

(original SOAP Message and HTTP Transport headers) received from Web Service Client (via Siebel Web Server Extension).

The .dmp file can be used as input of the “GenericDispatch” method of the “EAI Dispatch Service” Business Service to mimic the Inbound Web Service call dispatch.

Example of the  command of Server Manager Command line  utility (“srvrmgr“) that amends logging level of this event type to 5 for a given component

(example: “EAI Object Manager (ENU)“):

change evtloglvl EAIDispatchSvcArgTrc=5  for comp EAIObjMgr_enu

NOTE: To use this file as input in  the BS-Simulation one need to rename its extension to “.xml“.

NOTE-2: After(!), loading the file in BS-Simulator View one need to insert/correct the xml-prologue to <?xml version=”1.0″ encoding=”UTF-16″?>

to indicate the unicode text encoding, used by  Siebel UI

(2)  “EAI Siebel Adapter Argument Tracing” (short alias: “EAISiebAdptSvcArgTrc“)

to let methods of the “EAI Siebel Adapter” standard Business Service to produce produce “EAISiebelAdapter_input_args_*.dmp” files   with input arguments of the invoked method.

The .dmp file can be used as input of accordant menthod of the “EAI Siebel Adapter” Business Service.

Example of the  command of Server Manager Command line  utility (“srvrmgr“) that amends  logging level of this event type to 5 for a given component

(example: “EAI Object Manager (ENU)“):

change evtloglvl EAISiebAdptSvcArgTrc=5  for comp EAIObjMgr_enu

NOTE: To use this file as input in  the BS-Simulation one need to rename its extension to “.xml


(B) The .log File - Siebel Object Manager traces of various event types
Input arguments can be also captured right from the Siebel Application log, whenever one sees strings (often long) that starts 
 with the prefix: @0*  and  contains argumenz names and values separated by <NN>* ,  where <NN> is legth of a text value AFTER the * .

This string represents an internal serialization of a property set hierarchy, used by Siebel Object Manager to trace the property set content as string.

The serialization and de-serialization of a property set into / from a string is performed by standard Business Service "Workflow Utilities" 
 and its methods: "PropSetToText" and "TextToPropSet".
Traces of the the "Workflow Process Execution" (short alias: "PrcExec") and "Workflow Step Execution" (short: alias: "StpExec") component events
 shows input and output arguments (property set) for a workflow process start and execution of each its steps.

Example of the  command of Server Manager Command line  utility ("srvrmgr") that amends this parameter for a given component 
(example: "EAI Object Manager (ENU)"):
    change evtloglvl PrcExec=5  for comp EAIObjMgr_enu
 change evtloglvl StpExec=5  for comp EAIObjMgr_enu  

NOTE: Oversized property set can not be completely held in  the trace, in this cases, the approach will not work, 
 Incomplete trace can be recognized if last text elemnt the string does not follow the <NN>*<C(NN)> rule
 whre <NN> is number of characters: <C..C> after the *.

Below is  example of the Object Manager log file that  withinput argument traces for a Workflow Process  and a Business Service step:
ObjMgrBusServiceLog … InvokeMethod 4 … Begin: Business Service ‘Workflow Process Manager’ invoke method: ‘RunProcess’ …

EngInv EngInv 3 … Workflow engine requested to perform method ‘RunProcess’.

EngInv Arg 4Input: @0*0*1*1*0*3*0*11*ProcessName15*TST_T1_EAIQuery4*1*13*SiebelMessage0*9*MessageId9*8SIA-IDGZ11*MessageType18*Integration Object13*IntObjectName26*Internal Account Interface15*IntObjectFormat19*Siebel Hierarchical0*1*32*ListOfInternal Account Interface0*37*6*7*Account0*16*PO Approved Flag0*30*PO Auto Approval Currency Code3*USD17*Skip Credit Check1*N23*Assignment Country Code0*11*DUNS Number0*19*Parent Account Name0*25*Price List Integration Id0*10*Account Id10*8SIA-7EIGB14*Account Status6*Active20*Assignment Area Code0*17*Main Phone Number10*415897654318*Credit Status Date0*13*Currency Code3*USD20*Primary Organization20*Default Organization23*Parent Account Location0*15*Competitor Flag1*N14*Parent HQ DUNS0*5*Alias0*14*Integration Id0*29*Parent Account Integration Id0*12*Partner Flag1*N26*Credit Auto Approval Limit0*22*PO Auto Approval Limit0*4*Type8*Customer22*Domestic Ultimate DUNS0*19*Number of Employees0*9*Home Page0*21*PO Auto Approval Date0*9*Expertise0*23*VAT registration number0*15*Main Fax Number0*8*Location12*HQ-Corporate20*Global Ultimate DUNS0*4*Name15*A.K Parker Inc.17*Parent Account Id0*10*Price List0*13*Price List Id0*0*1*22*ListOfBusiness Address0*11*0*16*Business Address0*12*IsPrimaryMVG1*Y16*Street Address 20*6*County0*4*City8*Danville14*Street Address17*100 Danville Blvd5*State2*CA7*Country3*USA10*Address Id8*1-1FIG+C22*Address Integration Id0*8*Province0*11*Postal Code5*945860*1*23*ListOfRelated Sales Rep0*6*0*17*Related Sales Rep0*8*Position42*FIN 00 30 – Financial Advisor Credit Cards8*Division20*Default Organization12*IsPrimaryMVG1*Y5*Login7*PCONNOR11*Position Id10*8SIA-70NAN23*Position Integration Id0*0*0*21*ListOfRelated Contact0*0*1*26*ListOfRelated Organization0*4*0*20*Related Organization0*12*IsPrimaryMVG1*Y15*Organization Id6*0-R9NH27*Organization Integration Id0*12*Organization20*Default Organization0*0*20*ListOfCredit Profile0*0*0*22*ListOfRelated Industry0*

PrcExec PrcExec 3 … Executing process definition ‘MyProcess’.

PrcExec Create 4 … Instantiating process definition ‘MyProcess‘.

PrcExec PropSet 4    …    @0*0*4*1*13*SiebelMessage0*9*MessageId…22*ListOfRelated Industry0*

StpExec Create  4    …    Instantiating step definition ‘Start‘.

StpExec Create 4 … Instantiating step definition ‘MyBSstep‘.

StpExec Task 4 … Invoking method ‘MyMethhod‘ on business service ‘MyBS‘.

StpExec TaskArg 4 … Input: @0*


To turn the string with serialized representation of a property set into .xml  file, so that can be used as input arguments with BS-Simulator,

following custom business service: “AUX_T2PS” (attached as the “AUX_T2PS.xml” file to this document) can be used,

The BS to combines calls of following standard BS::Methods

  • EAI File Transport::Receive” – to read the serialized property set string from a file (a UTF-8 text copied from a .log file and begins with @0*)
  • Workflow Utilities::TextToPropSet” – to de-serialize the string from a file into a property set hierarchy
  • EAI XML Write to File::WritePropSet” – to save property set into an .xml file, that can be loaded in BS-Simulator (input arguments applet).

The Business Service has single method (“Execute“) and following input arguments:

  • FileName” – to specify location / name of the input text wile with a serialized property set string that begins with @0*  (will be read)
  • FileName2″ – to specify location / name of the  output .xml file with the decoded property set (will be produced)
  • other input parameters are optional and if present, will be passed to the “Receive” method of the “EAI File Transport” BS

This Business Service can be defined as run-time BS (defined in Siebel Client and requires no .SRF compilation)

The Business Service code (for copy+paste into BS server code edit):

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
// Read text file with the property set (serilalized as string)
var psX = Inputs.Copy();
var                   sCP = “CharSetConversion”;
if(  psX.GetProperty( sCP ) == “” )
psX.SetProperty( sCP,”UTF-8″ );
TheApplication().GetService(“EAI File Transport”).InvokeMethod(“Receive”, psX, Outputs );

// De-serialize property set from string into a property set object
psX = Outputs.Copy();
TheApplication().GetService(“Workflow Utilities”).InvokeMethod(“TextToPropSet”, psX, Outputs );

// Write xml file with the property set (serialized as XML document)
psX = Outputs.Copy();
psX.SetProperty(“FileName”, Inputs.GetProperty( “FileName2”) );
TheApplication().GetService(“EAI XML Write to File”).InvokeMethod(“WritePropSet”, psX, Outputs );
// Done.
psX =  null;
return (CancelOperation);

WARNING: The provided code example is given for illustration purpose only.

(C) the Service_PreInvokeMethod event handler (server side code)
Finally one can temporary put a server side code into the "Service_PreInvokeMethod" event handler of a Business Service, to capture input arguments of the invoked method.

Following provides an example of a Siebel eScript code, one could put in the business service in order to capture input arguments in an *.xml file. In this example, the file will be produced 
in the "../log" folder of the current Siebel Application directory (which is usually: "bin" folder of the software installation root). 
The name of the file will contain the Business Service name (with stripped blank characters), the method name, the sequential number - incremented at each call in
 this session and the random number, to provide unique (across all sessions) part to the file name.
var nCnt = 0;                                                        //dump files counter
var dmp_filePfx = “../log/” + this.Name().replace(/ /g,””) +  “_”;   //dump file prefix (folder + BS name)

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
try  //dump input arguments of any method
var psIn = Inputs.Copy();
psIn.SetProperty(“FileName“, dmp_filePfx + MethodName + “_” + ToString(++nCnt) + “_$$_input.xml” ); //provide the dump file name
with(TheApplication() ) GetService(“EAI XML Write to File“).InvokeMethod(“WritePropSet”, psIn, NewPropertySet() ); //create the dump file
finally {   psIn = null; }; //cleanup

NOTE: This code overwrites value of the “FileName” input argument if any would be provided the method invocation. To keep the original value of this input argument, one need to add extra code to obtain its value

and store into alternative parameter (such as :”Original_FileName”) and then, in the BS-Simulator View, correct the input argument name back to: “FileName”.

NOTE-2: An invocation of standard business service method may not necessary invoke the server side code of the event handler. Some specialized and internal business services may not presume use

of the scripting engine of Siebel Application. However in may “regular” cases the scripting engine is used to the custom code that will dump the input arguments, so that they could be used in the BS-Simulator.

WARNING: The provided code example is given for illustration purpose only.

Before this kind of solution could be placed in a production environment, it has to be verified/tested against potential data damage and loss.


Auxiliary Workflow Process to invoke a Business Service with complex arguments from Business Service Simulator View

In some cases, such as Siebel UI size constrains for input or output argument fields), need to use non UTF-16 encoding,
either input arguments cannot be loaded from an .xml file  or7and output arguments could not be displayed in the BS-Simulator View.

In such situation it is practical to define a 3 steps auxiliary workflow process or  a custom business service to that actual invokes being tested Business Service
so that initiation of simulation in the BS-Simulator View becomes just a start of this this auxiliary process (using the “RunProcess” method of the “Workflow Process Manager” BS) or business service.

The auxiliary process / business should:
– read the input arguments from an .xml file
– invoked the being tested method of the Business Service
– write the output arguments in an .xml file

The Business Service has single method (“Execute“) and following input arguments:

  • FileName” – to specify location / name of the input .xml with  with content of input argunents (will be read)
  • FileName2″ – to specify location / name of the  output .xml file with content of output argunents (will be produced)
  • BS” – to specify name of being tested Business Service
  • Method” – to specify name of the Business Service method
  • other input parameters are optional and if present, will be passed to the “Receive” method of the “EAI File Transport” BS

This Business Service can be defined as run-time BS (defined in Siebel Client and requires no .SRF compilation)

The Business Service code (for copy+paste into BS server code edit):

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
with( TheApplication() )
//  Load Input arguments
var psIn   = NewPropertySet();
GetService(“EAI XML Read from File“).InvokeMethod(“ReadPropSet”, Inputs, psIn ); //”FileName” in Inputs will be used to load ps from file
//  Invoke the Business Service
var sBS      = Inputs.GetProperty(“BS“);
var sMethod = Inputs.GetProperty(“Method“);
var psOut    = NewPropertySet();
GetService( sBS ).InvokeMethod( sMethod , psIn, psOut );
//  Save Output arguments
psOut.SetProperty(“FileName“, Inputs.GetProperty(“FileName2“) );
GetService(“EAI XML Write to File“).InvokeMethod(“WritePropSet”, psOut, Outputs ); //Outputs: will show result of saving ps in the file
}; // end-with: TheApplication
finally {   psIn = null; psOut = null; }; //cleanup

Comparing Two Repository Files Using SRFDiff

Comparing Two Repository Files Using SRFDiff

The SRFDiff utility allows you to compare two repository (.srf) files. Both SRFs must be from the same locale and language and compliant with the current Siebel Tools schema version. From the Help menu in Siebel Tools, choose Technical Support to view the schema version of the SRF that Siebel Tools is using.

NOTE:  The SRFDiff utility validates only for a major schema version. Therefore, SRFs with different minor schema versions, such as and, are valid schemas.

The differences between the two files, that is new, deleted, and changed objects, are recorded in two user-specified XML output files, depending on what the comparison discovers:

  • diff_srf1_srf2.xml. This output file contains differences between the two SRFs and provides a list of new and modified objects. It may also contain new objects found in srf2 that are not found in srf1. This output file shows the differences found during the comparison using an attribute name/value list format.
  • deleted_records_diff_srf1_srf2.xml. This output file contains deleted objects (objects present in srf1 but not in srf2).

If no differences are found or both SRF files are identical, then the SRFDiff utility does not generate output files.

To compare two repository files

  1. Log in to Siebel Tools.
  2. From the Tools menu, choose Utilities, and then the Compare SRFs menu item.
  3. In the Compare SRFs window, enter the following:
  • Full pathname for the first SRF file
  • Full pathname for the second SRF file you want to compare
  • Full pathname for the output file

NOTE:  If you do not specify a location for saving the output files, the SRFDiff utility by default saves these files to the Tools\objects directory.

  1. Click Compare.

The SRFDiff utility:                                    

  • Validates each SRF for file parameters, such as file existence, version, and language
  • Creates one or two output files as follows:
  • For new or changed objects or both, SRFDiff creates an output file that contains differences between the two SRFs. It also contains new objects present in one SRF file but not in the other file.
  • For deleted objects, SRFDiff creates an output file that contains deleted objects that are present in one SRF file but not in the other file.


Invoking the SRFDiff Utility Using the srvrmgr Command Line Interface

You can also invoke SRFDiff using the server manager (srvrmgr) command line utility by entering the following command:

siebdev /srfdiff “<srf1>” “<srf2>” “<outputfile>”

For example, if you want to compare the siebel.srf file with the siebel_1.srf file that reside in the C:\Programs Files\Siebel Tools 8.1\OBJECTS\ENU\ directory, you enter the following command:

siebdev /srfdiff “C:\Programs Files\Siebel Tools 8.1\OBJECTS\ENU\siebel.srf” “C:\Programs Files\Siebel Tools 8.1\OBJECTS\ENU\siebel_1.srf” “C:\Programs Files\Siebel Tools 8.1\OBJECTS\”

– No need of manual tracking
– It will shows what is added or removed from one srf to another and vice versa.

– It captures one change per object and does not captured multiple changes against same object for different change requirement i.e. If object is changed for two change request then it will only capture as object changed and does not shows how many times it is changed

Open the output file and see the differences:


Installing Siebel 8.2.2 on Linux x86-64 Part-4

6. Configure a Siebel Server.  

Now as we have populated Siebel database, next step is to configure Siebel Server.
In this section we will:-

  1. Generate siebenv.sh for Siebel Server.
  2. Configure, Start and test an Installed Siebel Server.

To generate siebenv.sh

  • Add 32-bit database client library path to LD_LIBRARY_PATH variable
    export LD_LIBRARY_PATH=/u01/obi/dbHome/OBIDB/product/11.2.0/client/lib
  • Navigate to siebsrvr install directory as
    # cd siebsrvr/install_script/install/
  • Run CreateSiebSrvrEnvScript which takes 4 arguments base directory of Siebel server , gateway name server info , Language and database type.
    Like :-
    [dbuser@vm50 install]$ ./CreateSiebSrvrEnvScript /u01/siebel/ vm50:2320 ENU Oracle
    Here arguments are <Siebsrvr home > <Name Server connecting string > <Langauage> <Database Type>
  • Important Note:- Please enter correct location of the ODBCINI parameter in the created siebenv.sh file.{as in our case odbc.ini was located in the gtwysrvr’s sys subdirectory so we set ODBCINI variable accordingly in siebenv.sh file just created in previous step.}
  • After fixing Siebenv.sh we source it.
  • Now we are ready to configure Siebel Server.

To configure Siebel Server

  • Navigate to config directory and run the configuration Wizard in siebsrv mode .as
    # ./config.sh -mode siebsrvr
  • Select Create new configuration.
  • Enter Gateway Name Server Authentication Username and Password.
  • Enter Gateway Name server Host-name and port(2320 in our case).
  • If you receive any error after the above step Please recheck if Gateway Name Server is running properly or not.
  • Enter Siebel Enterprise name
  • Enter Siebel Server name which by default is machine name.
  • Enable Components groups that you want.
  • Select Siebel connection Broker Port default is  2321;
  • Select Remote Synchronization Port.{Default is 40400}
  • As we are not going to perform any additional task click next and follow GUI.
  • A summary screen will appear click next to continue
  • And you should get a success message like the one below :-
  • Click exit to end the Wizard
  • Siebel server is now configures but not started
  • To start the server we navigate to siebsrvr bin directory
  • Run StartServer script as :-
    start_server [-r <siebel root>] [-e <enterprise>] [-L <language code>] [-a] [-f] [-g <gateway:port>] { <server name> … | ALL }
  • We can use srvrmanager to connect to the enterprise and the server
  • and it should connect successfully as
  • We can list all components as
    Srvrmgr> list components

Now next step is to Install Siebel web Server extension and we will try to access Siebel server using a web browser.

7. Installing and configuring a Siebel Web Server Extension (SWSE).

In this section we will:-

  1. install the Siebel Web Server Extension (SWSE)
  2. Configure and test SWSE

 Note: – We need an Oracle HTTP Server already running on the machine

 Note:– Supported Web Servers.
In our case we have http server listening on port 7777.{We have Installing Oracle Web Tier 32-bit on a 64-bit Linux Operating System}
Make sure http server is running as:-

  • Navigate to Server instance sub directory
    For Example :-
    #cd /u01/middleware/Oracle_WT1/instances/instance1/bin
  • Check the status of http server using opmn {oracle process management notification }
  • So http server is running fine, now we will configure Siebel we Server extension.
  • Go to the install image that we created earlier .
  • Run the “runInstaller” script from the Disk1/install directory.
  • Select  Home Location.
  • Select Language and Click Next.
  • We skipped the security update.
  • Once again (as we did earlier), we can skip the prerequisites check warnings as we are using  64 bit Operating System.
  • Cryptographic seed is used to encrypt user information in cookies used by SIEBEL.
  • Click Install on summary screen to proceed.
  • We can monitor installation from progress bar .
  • Click exit after you get success message

Now we will configure the Siebel we server extension that we just installed.

  • Navigate to sweapp directory
  • Source cfgenv.sh file and navigate to config subdirectory to run configuration tool in swse mode as
    ./config.sh -mode swse
  • Enter Siebel Server hostname
  • Enter Siebel Connection Broker Port{Default is 2321}
  • Select Siebel Web Server Logical Profile that we created earlier , its located in gtwsrvr’s admin subdirectory .
  • Select web server Instance location.
  • We need to restart web Server after configuration so we select restart option
  • Click next to execute settings
  • Click exit after you get a success message.
  • Now we can test it on a web browser
  • We can log as SADMIN User.
    This Concludes Siebel Installation on Linux x86-64.

Installing Siebel 8.2.2 on Linux x86-64 Part-3

In this part we will Siebel database configuration tool to populate Siebel  database but fire we need to some preparation tasks as explained in following section.

4. Preparing to run the Siebel Database Configuration Tool.
 In This section we will prepare our system for running the Siebel database configuration tool.
Our aim is to prepare our database to be populated with  Siebel data.We will run grantusr.sql in dbsrvr directory.

  • Update grantusr.sql in dbsrvr ,to  add GUESTERM  and GUESTCST
  • It is recomended  take a backup of grantuser.sql
  • Add the following line to grantusr.sql
    Note:- It is very important to keep in mind that  grantuser.sql does not create GUESTERM  and GUESTCST user we need to manually add lines to grantuser.sql  to create these two users. :-)
  • Run the updated grantusr.sql
  • Enter username , password for Siebel Database Object
    {In earlier versions of grantuser.sql Siebel user was by default table owner but in this new version of grantusr.sql we can manually specify Table owner user} .
  • Select Table space created earlier when asked for default table space.
  • Also Enter Passwords for SADMIN and LDAPUSER users {It is highly recommended not to change SADMIN user}.
  • TO test we can connect to database as SADMIN user
    sqlplus SADMIN@OBIDB as sysdba
  • Next step is to Populate the Siebel database but first create environment file from scripts located inside siebsrv directory
    # cd /u01/siebel/
  • Run CreateDbSrvrEnvScript as
    # ./CreateDbSrvrEnvScript /u01/siebel/ ENU Oracle
    Here first argument is SIEBEL Base and  ENU is for language English , Oracle For dbserver database type.
  • It will create
    dbenv.csh and dbenv.sh files under siebsrvr directory.
  • Source the newly created file.
  • Modify LD_LIBRARY_PATH and add 32-bit database client libraries to this path as :-
  • Note:- It is very important to add 32-bit database client libraries.
  • Above step is a very important step because , .odbc.ini file uses SEor825.so file and all of its supported libraries are not present until we add database client libraries to LD_LIBRARY_PATH.{We can also manually edit dbenv.sh file to include database client libraries to LD_LIBRARY_PATH }
  • Now we can test database connection using a tool “ odbcsql “ present in the siebsrvr/bin directory . We can use this tool as :-
    [dbuser@vm50 bin]$ ./odbcsql /source Veebrij_8_DSN /user SADMIN /password SADMINPASSWORD
  • If all went well you should be able to connect successfully.
  • and as we can see we were able to connect successfully.
  • Now we are ready to run Siebel database configuration tool and populate the Siebel database. (Explained in next step)

5 . Running Siebel Database tool to populate the Siebel Database.
In this section we will do the following :-

  1. Run database Configuration tool
  2. Populate and Test Siebel database.

To run database configuration tool:-

  • Navigate to config sub-directory
  • Run the configuration tool in dbsrvr mode as
    # ./config.sh -mode dbsrvr
  • Installer will automatically detect Siebel Server and Gateway name Server directory from the Environment file that we sourced earlier.
  • Select Oracle here :-
  • Select Install Database option.
  • Select Installation operation
  • As we have already run grantusr.sql script earlier , we can click next.
  • Select encoding type :-
  • Enter the ODBC data source that we tested earlier.
  • Enter database username and password created earlier (when we ran grantusr.sql).
  • If there is any error after above step, we need to retest database connectivity and environment variables settings.
  • Enter the table space owner name and password.
  • Now it will ask for Index table space name {Which we have created earlier in Part-1.}
  • Note: – In Siebel grantusr.sql script assumes there is only one table and does not grant permission on Index Table Space.
    So we will manually need to grant permissions as:-
    SQL>alter user SADMIN quota unlimited on SIEBELINDEXTS;
    SQL>alter user SIEBEL quota unlimited on SIEBELINDEXTS;
  • Enter the tablespace name that we created earlier(Part-1).
  • Enter the Product license key. Siebel  License Key can be obtained from
  • Follow the GUI for next steps.
  • In linux Configuration tool generates a master_<Process>.ucf file in $SIEBEL_ROOT/siebsrvr/bin directory. We now need to use Siebel Server Upgrade Wizard to run that file.
  •  Click next to execute settings.
  • Click exit after you get a success message.

Our Next step is to run Server upgrade Wizard with the master install file that was created by the configuration tool in siebsrvr/bin directory. For this

  • Navigate to siebsrvr bin directory and call Server Upgrade wizard as
    # ./srvrupgwiz /m master_install.ucf
  • It will take a while to complete the process(around 60 minutes.)
    and screen like following will appear.
  • After completion you should get screen like below :-
  • Note that it took 60 minutes to complete the process.
  • Once the import is complete we can test if the tables are populated or not. As :-
  • Also we can check size of the SIEBELTS Table space which has grown up-to 1 GB
    So we are fairly confident that database has been populated.