2201
2201
2201
Inroduction
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.
When running the engine from the command line, all properties can be placed in one file (e.g. myengine.tra) using the template "bwengine.tra". In the .tra file, you must edit the property tibco.env.APP_ARGS to point to itself. For example, if "myengine.tra" is in C:/temp, then the property would be tibco.env.APP_ARGS=-p C:/temp/myengine.tra Start the engine as >bwengine --propFile myengine.tra <repo> to load the engine with the properties declared in "myengine.tra". If deploying the engine to a domain, the properties set in the Admin GUI under the process archive should be added to the deployed engine's .tra file. To manage custom properties in the Admin GUI, you must add them to the "bwnegine.xml" file under <TIBCO_HOME>/bw/5.x/lib/com/tibco/deployment before creating the application archive (EAR) file. For example, <property> <name>JDBC Idle timeout</name> <option>java.property.bw.engine.dbConnection.idleTimeout</option> <default>5</default> <description>controls JDBC idle timeout in minutes</description> </property> [Note: Properties set in the "bwengine.xml" file will be visible in the Admin GUI for modification.]
Engine.Dir=./testDir (alternate method to specify the log directory) Engine.Log.MaxSize=20480000 (setting the maximum size for the log file in bytes) Engine.Log.MaxNum=5 (specifying the maximum number of log files -- 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.<role>.Term Trace.<role>.Log Trace.<role>.Publish where role = Info,Debug,Warn,Error,Role.<userRole> (note how a user defined role is specified as "Role.<userRole>") Trace.<role>.Publish.Subject Trace.<role>.Publish.Service
Trace.<role>.Publish.Daemon Trace.<role>.Publish.Network Enabling/Disabling the Roles: Trace.<role>.* (enables/disables the specified system role) Trace.Role.<userRole> (enables/disables specified user-defined role) Trace.Role.* (enables/disables all user-defined roles) Tracing for Different Components of BW: Trace.Startup (tracing during engine startup) Trace.Engine (tracing when job enters process flow) Trace.JC.* (tracing for all process starters) Trace.JC.<ProcessFlowName> (tracing for a specific process starter) Trace.JC.ProcessFlows/MyPr1.process=true (example) Trace.Task.* (tracing for all tasks) Trace.Task.<ProcessFlowName>.* (variation) Trace.Task.ProcessFlows/MyPr1.process.*=true (example) Trace.Task.<ProcessFlowName>.<ActivityName> (variation) Trace.Task.ProcessFlows/MyPr1.process.RVPub=true Example Trace.Task.ProcessFlows/MyPr1.process.<GroupName>/<ActivityName>=true [Note: when the activity is inside a group, the above example will not work.] Specifying Rolling Log Files for UserRole: Trace.Role.<userRole>.Log.Dir (location for the set of rolling log files)
Trace.Role.<userRole>.Log.File (file name for the log files) Trace.Role.<userRole>.Log.MaxSize (sets the maximum size of a log file) Trace.Role.<userRole>.Log.Maximum (specifies the maximum number of log files to create)
All Activities
bw.engine.showInput (available from BW 5.3 onwards) bw.engine.showOutput (available from BW 5.3 onwards)
SOAP Tracing
java.property.com.tibco.plugin.soap.trace.inbound=true java.property.com.tibco.plugin.soap.trace.outbound=true java.property.com.tibco.plugin.soap.trace.filename=C:/files/support/soapLogging/ soap.txt java.property.com.tibco.plugin.soap.trace.pretty=true java.property.com.tibco.plugin.soap.trace.stdout=true
WS-Security Tracing
log4j.logger.com.tibco.spin=DEBUG, tibco_bw_log log4j.logger.com.tibco.security.tibcryptx.wss=DEBUG, tibco_bw_log (enables the above in log4j.properties file in conjunction with t he soap tracing properties above)
RV Advisories
Trace.RV.Advisory.Error=true (error advisories are logged by default) Trace.RV.Advisory.Warn=false Trace.RV.Advisory.Info=false
Engine Properties
Worker Threads
The default number of worker threads is 8. On a multi-CPU machine, the number of threads can be increased. The user should empirically determine the optimal thread value for their deployment as too many threads can cause resource contention. The recommended value is 8 threads per CPU: Engine.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. The default value of this parameter is 20. Frequent thread switching can cause engine performance degradation. But when a process instance keeps the tread too long, this may cause less concurrency for executing process instances and hence inefficient use of CPU.Therefore, it is difficult to determine the correct value for this property. The default value is sufficient for most situations. But if your process definitions contain a large number of activities (and especially if they contain a large number of activities in iteration loops), you may benefit from setting this property to a higher value. Engine.StepCount=20
Flow Control
Those are flow control-related properties. Detailed explanation of those properties can be found in the TIBCO Admin Users Guide, Chapter 8 (Setting deployment options), under the section titled "Changing TIBCOBW process configuration properties". MaxJobs.ProcessFlows/PrRVSubscriber.process=5 (0 by default) FlowLimit.ProcessFlows/PrRVSubscriber.process=10 (0 by default) ActivationLimit.ProcessFlows/PrRVSubscriber.process=false ("true" by default) ActivationLimit.ProcessFlows/Pr\ RVSubscriber.process=false ("true by default)
Engine Termination
If you wish to terminate the engine when the "Process initialization failed" error is encountered during engine startup, set the following property to "true": Engine.ShutdownOnStartupError=true The default of the property above is "false".
FT-Related Properties
Engine.FT.UseFT=true Engine.FT.Weight=100 Engine.FT.HeartbeatInterval=3000 Engine.FT.ActivationDelay=6000 Engine.FT.ActivationInterval=10000
Engine.FT.GroupName=RUDRA.xyz Engine.FT.Subject=RUDRA.Test.Process (optional, if not used, subject=FT.<GroupName>) If you wish to perform FT-level debugging, you can listen on the following subject for FT heartbeats: tibrvlisten "_RVFT.ACTIVE_HB.<FT subject name>" FT transport configuration: To use non-default values for FT transport, set the following properties: Bus.Default.Service=6532 Bus.Default.Daemon=tcp:6532 Bus.Default.Network=; In some situations where a database is used as the data manager for process engines, a unique constraint violation is thrown. If such an error is encountered, set the property below to "false". Engine.StandAlone By default, the property above has a value of "true".
DupKey
The following three process engine properties control duplicate key detection:
bw.engine.dupKey.enabled
This property controls whether duplicate detection is performed. By default, this property is set to "true".
bw.engine.dupKey.timeout.minutes
This property specifies how long (in minutes) to keep stored duplicateKey values. The default value of this property is 30 minutes. The value "-1" indicates that the duplicateKey values are deleted when as soon as the job is completed. The value "0" forces the storage of duplicateKey values indefinitely. Positive integers greater than 0 determine the the number of minutes to keep stored duplicateKeys.
bw.engine.dupKey.pollPeriod.minutes
This property specifies the number of minutes to wait before polling for expired duplicateKey values.
Engine.Database.Configuration=/SharedConfig/JDBCOra
An alternate way is to use the following set of properties:
Engine.Database.MaxConnections=10 DB DataManager table names: The property below sets the Tablename prefix. Database.Tablename.Prefix=tab Setting the Tablename prefix is more than sufficient. However, the following properties are optional: Database.DataManager.Internal.Table=tab_internal Database.DataManager.Job.Table=tab_job Database.DataManager.Job.DupTable=tab_duplicates Database.WaitNotify.Wait.Table=tab_wait Database.WaitNotify.Notify.Table=tab_notify
Hawk
Enabling/Disabling Hawk
Hawk.Enabled=true true - enables both TIBCO Hawk and Engine Command activity usage. false - disables both TIBCO Hawk and Engine Command activity usage. local - only enables Engine Command activity (TIBCO Hawk will be disabled).
Hawk Transport
Hawk.Service=7474 (default udp port is 7474) Hawk.Daemon=tcp:7474 (default tcp port is 7474) Hawk.Network=; (default network value is ;)
Performance Statistics
Set the following property to collect statistics for various activities in a process flow at runtime: Instrumentation.*=true Instrumentation.<processName>=true (for a specific process flow) [Note: be advised that setting the instrumentation property can cause performance degradation and memory overhead.] When you enable instrumentation, 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. The property value specified in a call to setInsrumentProperties will take effect immediately.
FTP Activities
If you wish to strip the line feed character (\n) when executing FTP PUT command, you must set the following property to "true": bw.plugin.ftp.stripLineFeedInPut=false (the default setting is "false")
File activities
When a file is saved on a Windows platform using UTF-8 encoding, the Windows OS adds a Byte Order Mark (BOM) to the beginning of the file. This BOM is not necessary for UTF-8,
but it is valid nonetheless. Prior to release 2.0.6, the File Reader activitys output will include the BOM at the beginning of the data read from the file. The property below will strip the BOM from the file when encountered. Its default value is "true". Thus, if you wish to retain the BOM, you set this property to "false" java.property.DiscardUTF8BOM=false
General activities
Wait-Notify
By default, the Wait-Notify activity will use the following settings for its transports: Bus.Default.Service Bus.Default.Network Bus.Default.Daemon These are the same settings used by other components of the engine, including FT, RV sink, etc. If you wish to give explicit settings for Wait-Notify transports, use these settings instead: WaitNotify.Service WaitNotify.Network WaitNotify.Daemon
External Command
Use the following property to set the thread pool for the External Command activity: CmdExec.ThreadCount=5
Timer
Before BW release 5.2.0, the Timer process starter used the Java convention (0-11) for the number of months in its output; however, the expected convention for the number of months
is 1-12. In release 5.2.0, the month is returned as a number between 1 and 12. If you wish to maintain backward compatibility, set the following property to "true": bw.plugin.timer.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, the minimum and maximum thread value is set to 10 and 75, respectively. bw.plugin.http.server.minProcessors=10 bw.plugin.http.server.maxProcessors=150 bw.plugin.http.server.acceptCount=10
Connection Pooling
The following properties are used to set connection pooling and configure the number of connections in the pool: bw.plugin.http.client.usePersistentConnectionManager (flag to turn on connection pooling) bw.plugin.http.client.maxConnectionsPerHost (maximum connection to each remote host with a default of 20) bw.plugin.http.client.maxTotalConnections (maximum connection for all HTTP server with a default of 200) bw.plugin.http.client.checkForStaleConnections (check for stale connection in the pool)
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, noting that it takes either the host name or its IP address as its value: bw.plugin.http.server.defaultHost
Encode QueryString
As of BW release 5.2.0, the QueryString input element of the Send HTTP Request activity is not automatically URL-encoded. This was not the case in prior releases. Therefore, this change may cause backward compatibility issues, if you rely on the activity to perform the URL-encoding of the QueryString. If set to "true", the following property will revert to the behavior of previous BW releases. bw.plugin.http.client.urlEncodeQueryString
HTTPS/Security
This property defers client authentication and outputs the clients security context when the client connects to the server using HTTPS: bw.plugin.https.server.deferClientAuthentication To specify the "entrust" security or "JSSE" vendor, set the following properties: java.property.TIBCO_SECURITY_VENDOR=entrust61 java.property.TIBCO_SECURITY_VENDOR=j2se
Login Timeout
The property below refers to time-to-wait (in seconds) for a successful database connection. Only JDBC drivers that support connection timeouts can use this property; otherwise, it is ignored. The value of this property overrides any value set for connection timeouts in the "Configuration" tab of the JDBC Connection resource. Config.JDBC.Connection.SetLoginTimeout
Test Statement
When a SQL error occurs during statement execution, BW will execute a test SQL statement to determine if the error is caused by a bad connection. If the error is due to a bad connection, the statement then can be re-executed using a different connection in the connection pool.The SQL test statement is unmodifiable for Oracle, Sybase, SQL Server, or DB2 databases. However, the property below should allow you to specify SQL test statement for databases other than those cited above. All you need to do is specify the database name and set the value of the property to a valid SQL statement. Engine.Database.TestStatement.<name>=<sql statement used to test connection>
Reconnection
The property below is used in conjunction with FT URL setup in JMS shared connection. For this property to take effect, you need EMS client API 4.2 or higher, which means that this property will have no effect for BW releases 5.1.3, 5.2.0, etc. The syntax for the following property is 20 attempts within a span of 5000 milliseconds: java.property.com.tibco.tibjms.reconnect.attempts 20,5000
Java Activities
By default, the Java Code activity uses the system encoding. It does not use the encoding set in Designer or Administrator. To use a different encoding, for instance UTF-8, use the following property in "designer.tra" or "bwengine.tra": java.extended.properties=-Dfile.encoding=UTF-8
Mail activities
This discission referrs to the Java Mail API properties. Since we use the SMTP provider from Sun, the following Java properties can be used: mail.smtp.connectiontimeout(Socket conn timeout(ms),default is infinite timeout) mail.smtp.timeout(Socket I/O timeout(ms),default is infinite timeout.) The following are not BW properties; they are standard Java Mail API properties. java.property.mail.debug=true (throws debug information about mail to stdout) java.property.mail.smtp.auth=false (sets smtp authentication to "false")
A new property to handle discrete media types (RFC2047). It handles four top-level media types (including image/*, application/*, audio/*, video/*), assuming that the message has only one binary part. This property has to be set to "true". bw.plugin.mail.receiverHandleDiscreteTypes A new property to flatten multiple nested mime sub-parts under any mime part. This property has to be set to "true" as well. bw.plugin.mail.receiverFlattenNestedAttachments The following property allows you to specify the number of times the Receive Mail process starter will attempt to receive the same message. The amount of time allotted for re-trials will be the value of this property multiplied by the polling interval. bw.plugin.mail.receiverRetryCount
Mapper Activities
The "Mapping Wizard" was creating empty tags for each optional element, even if the optional elements did not appear in the input data. To avoid the empty tags in the output when the input did not contain the optional element, the user had to manually create "xsl:if" statement. A new system property "automatic_mapper_if_surround" is added to fix this problem. Set this the following property to "true" in the designer.tra file in order to surround all new optional-to-optional mappings (including child elements) by an xsl:if statement. If the system property is set to "false" (or entirely absent) , child elements will not be surrounded with the xsl:if statement. java.property.automatic_mapper_if_surround=true
RV transport
RV Transport
To use non-default values for RV transport, set these properties: Bus.User.Service=7501 Bus.User.Daemon=tcp:7501 Bus.User.Network=
SOAP Activities
java.property.com.tibco.plugin.soap.RetrieveResources.IgnoreInputHostForImportLo cations=true java.property.com.tibco.plugin.soap.RetrieveResources.IgnoreInputHostForWsil=tru e
TCP Activities
To Specify Accept Count (i.e. Connection Queue length) for TCP Server, set the following property, noting that 50 is the default setting: bw.plugin.tcp.server.acceptCount=50
XML Activities
java.property.com.tibco.bw.use.old.validator true java.property.com.tibco.xml.use.old.render.code true java.property.com.tibco.schema.ae.makeNillable true java.property.com.tibco.xml.schema.preserve-boolean-lexical-value=true Set the last property in designer.tra and then run the tester in Designer to enable the property. After adding it, you should see that boolean "0" will not be changed to "false".