Understanding BW engine properties

Note to the reader:
For many property declarations discussed in this article, we followed the property with parentheses that enclose a comment for explanation. If you choose to add a property with a comment within parentheses to your property file, you must remove the parentheses and advance each comment with a comment tag in order to prevent unnecessary syntax errors.

The BW engine uses two flavours of properties:
1. java.property.<propname> -- which is loaded by the wrapper(i.e bwengine.exe) 2. <propname> -- which is picked by the engine

The wrapper loads its properties from a file specified by --propFile while the engine loads its properties from a file specified by -p. When running the engine in debug mode (i.e. through Designer), the properties can be put in a file, such as "properties.cfg", and loaded when the engine is launched as -p properties.cfg. When you launch the tester engine, go to the Advanced Test Settings tab and specify the properties file as shown below.

By default, the tester engine in Designer loads the properties file(properties.cfg) to the <TIBCO_HOME>/designer/5.x directory. Some properties of the form 'java.property.*' needs to be specified in the designer.tra file as they are loaded by the wrapper, in which case Designer must be restarted for the properties to take effect. In contrast, any changes made to the engine properties specified with the -p flag should take effect simply by restarting the tester.

Generated by Clearspace on 2011-01-25-06:00 1

then the property would be tibco.property.Dir=logs (directory to which log files are written) Generated by Clearspace on 2011-01-25-06:00 2 . For example.engine.tra file.dbConnection.tra".tra Start the engine as >bwengine --propFile myengine. Logging and Debugging Log File and Directory Properties Engine.env.tra".bw. <property> <name>JDBC Idle timeout</name> <option>java.tra file.] Tracing.x/lib/com/tibco/deployment before creating the application archive (EAR) file.env.Understanding BW engine properties When running the engine from the command line. To manage custom properties in the Admin GUI.APP_ARGS to point to itself. all properties can be placed in one file (e.APP_ARGS=-p C:/temp/myengine.tra" is in C:/temp. you must add them to the "bwnegine.xml" file under <TIBCO_HOME>/bw/5. if "myengine. myengine.tra <repo> to load the engine with the properties declared in "myengine.g.xml" file will be visible in the Admin GUI for modification. In the .idleTimeout</option> <default>5</default> <description>controls JDBC idle timeout in minutes</description> </property> [Note: Properties set in the "bwengine. If deploying the engine to a domain.Log. For example.tra) using the template "bwengine. the properties set in the Admin GUI under the process archive should be added to the deployed engine's . you must edit the property tibco.

<role>.<role>.MaxSize=20480000 (setting the maximum size for the log file in bytes) Engine.<userRole>") Trace.<userRole> (note how a user defined role is specified as "Role.Term Trace.Log.Error.Log.<role>.<role>.Warn.Service Generated by Clearspace on 2011-01-25-06:00 3 .Publish.Publish./testDir (alternate method to specify the log directory) Engine.<role>.Understanding BW engine properties Engine.Subject Trace.Publish where role = Info.Role.a rollover feature) Roles Info Debug Warn Error userrole (used in 'Write to log' activity) Sinks Term (terminal or console) Log #log file Publish #RV sink Tracing Trace.MaxNum=5 (specifying the maximum number of log files -.Log Trace.Debug.Dir=.

process.Understanding BW engine properties Trace.Task.Task.Dir (location for the set of rolling log files) Generated by Clearspace on 2011-01-25-06:00 4 .<role>.<ActivityName> (variation) Trace.<ProcessFlowName>.<role>.Daemon Trace.<GroupName>/<ActivityName>=true [Note: when the activity is inside a group.process.Engine (tracing when job enters process flow) Trace.<userRole> (enables/disables specified user-defined role) Trace.Network Enabling/Disabling the Roles: Trace.<ProcessFlowName>.JC.ProcessFlows/MyPr1.Role.Startup (tracing during engine startup) Trace.RVPub=true Example Trace.Task.*=true (example) Trace.* (enables/disables the specified system role) Trace.Task.Publish.JC.* (enables/disables all user-defined roles) Tracing for Different Components of BW: Trace.* (tracing for all tasks) Trace.JC.Role.process.Role.Task.<role>. the above example will not work.Log.process=true (example) Trace.Publish.* (tracing for all process starters) Trace.] Specifying Rolling Log Files for UserRole: Trace.Task.ProcessFlows/MyPr1.* (variation) Trace.<userRole>.ProcessFlows/MyPr1.ProcessFlows/MyPr1.<ProcessFlowName> (tracing for a specific process starter) Trace.

Log.txt java.trace.soap.soap.showOutput (available from BW 5.soap.stdout=true WS-Security Tracing log4j.<userRole>.property.Advisory.property.Advisory.tibco.plugin.tibco.com.property.plugin.Warn=false Trace.Understanding BW engine properties Trace.property.tibco.spin=DEBUG.tibco.plugin.com.outbound=true java.soap.3 onwards) bw.engine.plugin.soap.<userRole>.RV.tibco.tibcryptx. tibco_bw_log log4j.MaxSize (sets the maximum size of a log file) Trace.com.RV.Info=false Generated by Clearspace on 2011-01-25-06:00 5 .inbound=true java.logger.File (file name for the log files) Trace.logger.properties file in conjunction with t he soap tracing properties above) RV Advisories Trace.wss=DEBUG.Role.Log.Maximum (specifies the maximum number of log files to create) All Activities bw.tibco.showInput (available from BW 5.tibco.Role.trace.plugin.Log.trace.Role.Advisory.<userRole>.trace.pretty=true java.com.Error=true (error advisories are logged by default) Trace.security.3 onwards) SOAP Tracing java.RV.engine. tibco_bw_log (enables the above in log4j.com.com.property.trace.com.filename=C:/files/support/soapLogging/ soap.

this may cause less concurrency for executing process instances and hence inefficient use of CPU.process=false ("true by default) Generated by Clearspace on 2011-01-25-06:00 6 . Detailed explanation of those properties can be found in the TIBCO Admin Users Guide. The user should empirically determine the optimal thread value for their deployment as too many threads can cause resource contention.ThreadCount=8 StepCount Property The StepCount property controls the maximum number of execution steps (unless inside a transaction) for a job before an engine thread switch occurs. MaxJobs. But if your process definitions contain a large number of activities (and especially if they contain a large number of activities in iteration loops). The default value is sufficient for most situations. Engine. you may benefit from setting this property to a higher value. On a multi-CPU machine.StepCount=20 Flow Control Those are flow control-related properties. Chapter 8 (Setting deployment options). But when a process instance keeps the tread too long.process=false ("true" by default) ActivationLimit.process=5 (0 by default) FlowLimit.process=10 (0 by default) ActivationLimit. The recommended value is 8 threads per CPU: Engine. Frequent thread switching can cause engine performance degradation. under the section titled "Changing TIBCOBW process configuration properties".ProcessFlows/PrRVSubscriber.ProcessFlows/PrRVSubscriber.ProcessFlows/PrRVSubscriber.Understanding BW engine properties Engine Properties Worker Threads The default number of worker threads is 8.Therefore.ProcessFlows/Pr\ RVSubscriber. The default value of this parameter is 20. the number of threads can be increased. it is difficult to determine the correct value for this property.

Understanding BW engine properties Memory Saving Mode . EnableMemorySavingMode.FT.Weight=100 Engine.<processName>=true (for specific process flow) Both properties above are "false" by default JobId Block Size When an engine starts up.JobIdBlockSize=1000 Engine Termination If you wish to terminate the engine when the "Process initialization failed" error is encountered during engine startup.FT. set the following property to "true": Engine.ActivationDelay=6000 Engine.BW Garbage Collection (not Java) Memory saving mode can reduce memory usage by actively running process instances as well as potentially improving the performance of checkpoints. it reads a job id block size from the DataManager.*=true (for all process flow) EnableMemorySavingMode.ShutdownOnStartupError=true The default of the property above is "false". FT-Related Properties Engine. Note that is a BW Process Variable garbage collection and not the Java garbage collection. the value of the JobIdBlockSize is 1000: Engine. Each newly created job is assigned an id from this block.FT.UseFT=true Engine.HeartbeatInterval=3000 Engine.FT. By default.ActivationInterval=10000 Generated by Clearspace on 2011-01-25-06:00 7 .FT.

The value "-1" indicates that the duplicateKey values are deleted when as soon as the job is completed.minutes This property specifies how long (in minutes) to keep stored duplicateKey values.Understanding BW engine properties Engine.enabled This property controls whether duplicate detection is performed. the property above has a value of "true". DupKey The following three process engine properties control duplicate key detection: • bw.Default.Test.engine. set the following properties: Bus.Default.Daemon=tcp:6532 Bus.dupKey. By default. If such an error is encountered.FT. if not used. The default value of this property is 30 minutes. you can listen on the following subject for FT heartbeats: tibrvlisten "_RVFT.StandAlone By default.ACTIVE_HB.<FT subject name>" FT transport configuration: To use non-default values for FT transport. a unique constraint violation is thrown.Service=6532 Bus. Generated by Clearspace on 2011-01-25-06:00 8 . In some situations where a database is used as the data manager for process engines. set the property below to "false".Process (optional.engine. • bw.<GroupName>) If you wish to perform FT-level debugging.FT.Subject=RUDRA.Network=.dupKey. subject=FT. The value "0" forces the storage of duplicateKey values indefinitely. Engine.xyz Engine.Default.timeout. this property is set to "true".GroupName=RUDRA. Positive integers greater than 0 determine the the number of minutes to keep stored duplicateKeys.

engine.Database. implying file-based data manager) File-based DataManager .Dir property. it will always create a directory named 'working' under the specified location.OracleDriver Engine.jdbc.dupKey. you can specify the name/location using the following property: DataManager. The 'log' directory is also created under the same location. DataManager/Checkpoint Database Properties Engine.Database.pollPeriod.UseDatabase=true (the default value is "false".working directory: If using file-based data manager.Location=jdbc:oracle:thin:@jones:1521:icjones Engine.Directory=<dir> (absolute or relative path) The default value for this property is 'working' An alternate (and recommended) way to specify the location of the data manager directory can be accomplished with the following property: Engine.Understanding BW engine properties • bw.driver.Database.User=oratest Engine.Dir=C:/MyProject Note that when using the Engine. DB-based DataManager: There are two ways to specify the database connectivity details: • The simplest way is to use a 'JDBC Connection' resource from the BW project: Engine.Database.Database.minutes This property specifies the number of minutes to wait before polling for expired duplicateKey values.Configuration=/SharedConfig/JDBCOra • An alternate way is to use the following set of properties: Engine.Password=oratest Generated by Clearspace on 2011-01-25-06:00 9 .Driver=oracle.

Wait.) Generated by Clearspace on 2011-01-25-06:00 10 .enables both TIBCO Hawk and Engine Command activity usage.only enables Engine Command activity (TIBCO Hawk will be disabled).DataManager. However.Enabled=true true .Table=tab_notify Hawk Enabling/Disabling Hawk Hawk.disables both TIBCO Hawk and Engine Command activity usage.Job.Notify.DataManager.Table=tab_job Database. the following properties are optional: Database.Database.Service=7474 (default udp port is 7474) Hawk. Database. false .Daemon=tcp:7474 (default tcp port is 7474) Hawk.Job.DataManager.Understanding BW engine properties Engine.WaitNotify. local . Hawk Transport Hawk.Prefix=tab Setting the Tablename prefix is more than sufficient.MaxConnections=10 DB DataManager table names: The property below sets the Tablename prefix.Table=tab_internal Database.DupTable=tab_duplicates Database.Tablename.Internal.Table=tab_wait Database. (default network value is .Network=.WaitNotify.

address=5005 Generated by Clearspace on 2011-01-25-06:00 11 .DisplayName=Test.properties -Xms768m -Xmx768m -verbose:gc Enable Remote Debugging from IntelliJ and Other IDEs java. The property value specified in a call to setInsrumentProperties will take effect immediately.*=true Instrumentation.tibco.properties -Xdebug -Xnoagent -Djava.] When you enable instrumentation.suspend=n.AMI. Other (Non-activity) Specific Properties Memory java. it allows you to execute the following Hawk methods: • • Collection of activity statistics using GetActivity micro-agent method Calls to OnProcessActivity and OnProcessStatusChanged micro-agent methods The instrumentation property can be set at runtime by calling the TIBCO Hawk setInstrumentProperties method.<engineName> Performance Statistics Set the following property to collect statistics for various activities in a process flow at runtime: Instrumentation.Understanding BW engine properties Hawk Display Name Hawk.<processName>=true (for a specific process flow) [Note: be advised that setting the instrumentation property can cause performance degradation and memory overhead.pe.compiler=NONE Example: -Xrunjdwp:transport=dt_socket.extended.bwengine #default name is com.server=y.extended.

xyz Repository Connection .ae.ftp. This BOM is not necessary for UTF-8.Args -p c:\\tibco\\properties.publishReqRepTimeout (specified in milliseconds) FTP Activities If you wish to strip the line feed character (\n) when executing FTP PUT command.property.User.mySubject=test.<global var>=test tibco.clientVar. the Windows OS adds a Byte Order Mark (BOM) to the beginning of the file.domain=Test tibco.testEngine. Generated by Clearspace on 2011-01-25-06:00 12 .username=admin designer.clientVar.Understanding BW engine properties Global Variable Substitution tibco.stripLineFeedInPut=false (the default setting is "false") File activities When a file is saved on a Windows platform using UTF-8 encoding.repourl=C\:/tibco/tra/domain/amxdom/datafiles/RVCMQtester_root tibco.cfg Active Enterprise Adapter Activities Publish to Adapter Activity Timeout for 'Publish to Adapter' activity when used in a request/reply mode: bw. you must set the following property to "true": bw.plugin.Remote/Local tibco.tra prop to point to prop file java.deployment=RVCMQtester tibco.plugin.

the Timer process starter used the Java convention (0-11) for the number of months in its output.0.Network Bus. however.Service WaitNotify.Default.Service Bus. the expected convention for the number of months Generated by Clearspace on 2011-01-25-06:00 13 .Default. you set this property to "false" java.Daemon These are the same settings used by other components of the engine. The property below will strip the BOM from the file when encountered.Network WaitNotify. RV sink. if you wish to retain the BOM. the File Reader activitys output will include the BOM at the beginning of the data read from the file.6. use these settings instead: WaitNotify.Daemon External Command Use the following property to set the thread pool for the External Command activity: CmdExec.property. If you wish to give explicit settings for Wait-Notify transports.2. etc.Understanding BW engine properties but it is valid nonetheless.DiscardUTF8BOM=false General activities Wait-Notify By default. the Wait-Notify activity will use the following settings for its transports: Bus. Its default value is "true".ThreadCount=5 Timer Before BW release 5.0.Default. Thus. including FT. Prior to release 2.

minProcessors=10 bw.http. respectively.http.http. If you wish to maintain backward compatibility.plugin. the minimum and maximum thread value is set to 10 and 75.useJavaMonth HTTP activities Threads for Incoming HTTP Requests The property below sets them minimum and maximum number of threads for incoming HTTP requests. By default.0.plugin.maxProcessors=150 bw.plugin.server.plugin. bw.client.http.server.maxTotalConnections (maximum connection for all HTTP server with a default of 200) bw. the month is returned as a number between 1 and 12. set the following property to "true": bw.acceptCount=10 Connection Pooling The following properties are used to set connection pooling and configure the number of connections in the pool: bw.plugin.plugin.client.plugin.http.client.client.server.http. The following property sets the number of threads in the pool: Generated by Clearspace on 2011-01-25-06:00 14 .timer.checkForStaleConnections (check for stale connection in the pool) Request-Response Thread Pool Each HTTP request is executed in a separate thread belonging to a thread pool associated with the activity. In release 5.Understanding BW engine properties is 1-12.2.maxConnectionsPerHost (maximum connection to each remote host with a default of 20) bw.http.plugin.usePersistentConnectionManager (flag to turn on connection pooling) bw. The number of threads in the pool determines the maximum number of concurrent requests a HTTP request/response activity can execute.

bw.plugin.property.0.bw.http.plugin.dbConnection.defaultHost Encode QueryString As of BW release 5.plugin.Understanding BW engine properties bw.urlEncodeQueryString HTTPS/Security This property defers client authentication and outputs the clients security context when the client connects to the server using HTTPS: bw. If you wish to set a different idle timeout (in minutes).property.TIBCO_SECURITY_VENDOR=j2se Idle Connection Timeout By default. Therefore.idleTimeout Generated by Clearspace on 2011-01-25-06:00 15 .server. connections in a pool will close after idle timeout period of 5 minutes. if you rely on the activity to perform the URL-encoding of the QueryString.server. noting that it takes either the host name or its IP address as its value: bw. use this property: java.https. the following property will revert to the behavior of previous BW releases.http.engine.http.property. this change may cause backward compatibility issues. the QueryString input element of the Send HTTP Request activity is not automatically URL-encoded. Default Host Set the following property to specify the name of the default host that must be used when the machine has multiple domains or IP addresses. If set to "true".client. set the following properties: java. This was not the case in prior releases.plugin.client.2.TIBCO_SECURITY_VENDOR=entrust61 java.deferClientAuthentication To specify the "entrust" security or "JSSE" vendor.ResponseThreadPool The default value of this property is 10.

Understanding BW engine properties Login Timeout The property below refers to time-to-wait (in seconds) for a successful database connection.2 release.CallProcedure. Sybase.TestStatement. you must set the property below to "false".JDBC. The value of this property overrides any value set for connection timeouts in the "Configuration" tab of the JDBC Connection resource.2. If you wish to migrate a project without resolving this issue. Thus. the property below should allow you to specify SQL test statement for databases other than those cited above. but was allowed in BW releases prior to 5.InputOptional Set Output Nil Prior to BW release 5.1. Engine. Config. However.1. or DB2 databases. All you need to do is specify the database name and set the value of the property to a valid SQL statement.SetLoginTimeout Setting Optional Parameters Optional parameters for a call procedure activity have never been supported. otherwise. there will be validation errors for any unspecified input elements for stored procedure parameters.The SQL test statement is unmodifiable for Oracle. These migrated projects cannot be executed until such errors are resolved. the output element corresponding to that table value was not included into the output schema for a JDBC Call Procedure activity if the output element was optional. it is ignored. if a value returned from a database table was null. The element will be placed into the output schema with "xsi:nil = true" to indicate the element is null. Only JDBC drivers that support connection timeouts can use this property.CallProcedure.OutputUseNil Test Statement When a SQL error occurs during statement execution.JDBC. BW will execute a test SQL statement to determine if the error is caused by a bad connection. you must set the following property to "true" Config. when migrating a project from a pre-5. SQL Server. In order to achieve the behavior of previous Pre-5. the statement then can be re-executed using a different connection in the connection pool.JDBC.2.Connection. Config.Database. If the error is due to a bad connection.<name>=<sql statement used to test connection> Generated by Clearspace on 2011-01-25-06:00 16 .2 releases.

debug=true (throws debug information about mail to stdout) java.com.tra" or "bwengine.smtp. For this property to take effect.0.mail. Setting the following property to "true" allows the process engine to start and the JMS process starters will wait until the JMS sever is up and running before starting: bw. the Java Code activity uses the system encoding. java.tra": java.smtp.1.property.) The following are not BW properties. The syntax for the following property is 20 attempts within a span of 5000 milliseconds: java.encoding=UTF-8 Mail activities This discission referrs to the Java Mail API properties. they are standard Java Mail API properties. etc. for instance UTF-8. 5.5000 Java Activities By default.properties=-Dfile.tibco.default is infinite timeout) mail.connectiontimeout(Socket conn timeout(ms).extended. use the following property in "designer.timeout(Socket I/O timeout(ms).mail.reconnect.3. the initialization of such process flows will fail.tibjms.attempts 20. Since we use the SMTP provider from Sun. the following Java properties can be used: mail.default is infinite timeout.plugin. you need EMS client API 4. To use a different encoding.2 or higher.jms.2.recoverOnStartupError Reconnection The property below is used in conjunction with FT URL setup in JMS shared connection. It does not use the encoding set in Designer or Administrator.auth=false (sets smtp authentication to "false") Generated by Clearspace on 2011-01-25-06:00 17 . which means that this property will have no effect for BW releases 5.Understanding BW engine properties Recover Startup Error When a process engine containing JMS process starters attempts to startup while the JMS server is not running.property.smtp.property.

video/*). the user had to manually create "xsl:if" statement.tra file in order to surround all new optional-to-optional mappings (including child elements) by an xsl:if statement.mail. child elements will not be surrounded with the xsl:if statement. application/*. java. Set this the following property to "true" in the designer. Adding the property below and setting its value to "true" will fix the problem. the expectation is that the parser would yield after 200 lines of the structure defined in the data format.mail.automatic_mapper_if_surround=true Parse Data Activities If the line length is 2000 and the data format length is 100 and where the entire data is on one line. To avoid the empty tags in the output when the input did not contain the optional element. bw. It handles four top-level media types (including image/*. This property has to be set to "true" as well.plugin. assuming that the message has only one binary part.property. This property has to be set to "true".parseData. The amount of time allotted for re-trials will be the value of this property multiplied by the polling interval.receiverFlattenNestedAttachments The following property allows you to specify the number of times the Receive Mail process starter will attempt to receive the same message. even if the optional elements did not appear in the input data. bw.receiverRetryCount Mapper Activities The "Mapping Wizard" was creating empty tags for each optional element.Understanding BW engine properties A new property to handle discrete media types (RFC2047). audio/*. bw.mail.plugin. If the system property is set to "false" (or entirely absent) .plugin.enforceLineLength Generated by Clearspace on 2011-01-25-06:00 18 .plugin.receiverHandleDiscreteTypes A new property to flatten multiple nested mime sub-parts under any mime part. A new system property "automatic_mapper_if_surround" is added to fix this problem. bw.

validator true java.acceptCount=50 XML Activities java.tibco.User. you should see that boolean "0" will not be changed to "false".RetrieveResources. After adding it.com.tibco.User.tibco.RetrieveResources.server.ae.property.User.IgnoreInputHostForWsil=tru e TCP Activities To Specify Accept Count (i.old. Connection Queue length) for TCP Server.preserve-boolean-lexical-value=true Set the last property in designer.use.plugin.makeNillable true java.schema.property.code true java.Service=7501 Bus.property.bw.tibco.tibco.IgnoreInputHostForImportLo cations=true java.com.property.xml.tcp.com.tibco.com. set these properties: Bus.e.plugin.old. noting that 50 is the default setting: bw.Network= SOAP Activities java.com.plugin.use.schema.soap.render. Generated by Clearspace on 2011-01-25-06:00 19 .Daemon=tcp:7501 Bus. set the following property.property.soap.com.property.xml.Understanding BW engine properties RV transport RV Transport To use non-default values for RV transport.tra and then run the tester in Designer to enable the property.

Sign up to vote on this title
UsefulNot useful