Small information nuggets and recipies about webMethods
✂️ webMethods
(most recent on top)
Installer
… running installer from a jar
java -Xmx1024m -Xincgc -jar webMethodsInstaller71.jar
Diagnostics info
… Integration Server
-
Thread Dump (“Administering Integration Server”, section “Generating Thread Dumps”):
- “Server” ➤ “Statistics page”
- Under “Usage”, click the “Current number of System Threads”
- Click “Generate JVM Thread Dump”
-
Diagnostic Data (“Administering Integration Server”, section “Using the Diagnostic Utility”):
- svc:
wm.server.admin:getDiagnosticData
- url:
http://localhost:5555/invoke/wm.server.admin/getDiagnosticData
- out:
C:\SoftwareAG\IntegrationServer\logs\diagnostic_data.zip
- svc:
… Mediator
- svc:
mediator.util:mediatorDiagnosticZip
- url:
http://localhost:5555/invoke/mediator.util:mediatorDiagnosticZip
- out:
<download>
… My webMethods Server
- See “Diagnosing My webMethods Server” PDF document
- cmd:
copy C:\SoftwareAG\MWS\components\extras\analysis\wm_eventscollector.pdp C:\SoftwareAG\MWS\server\default\deploy cd SoftwareAG\MWS\tools\env_capture run -s default
- out:
C:\SoftwareAG\MWS\tools\env_capture\portal-env.zip
- cmd:
… Optimize
- cmd: Navigate ➤ Applications ➤ Administration ➤ Analytics ➤ Diagnostics
- out:
export.csv
Broker setup
… see “webMethods Broker Administrators Guide.pdf”
-
Create shared broker with more storage
-session_config qs -qs_log_file <datadir>/Broker.qs.log 128M # 8 [32] 128 -qs_storage_file <datadir>/Broker.qs.stor 2048M 256M # 256 [512] 1024 # ? [64] ?
-
Increase storage cache size (“should at least be the size of the log file”)
- Edit:
awbroker.cfg
- Add:
storage-max-cache-size=512 # [128]
- Edit:
Broker install problems
… aborted or interrupted installation
-
Delete directories:
C:\WINDOWS\activesw {WM_HOME}\Broker\data\awbrokers61 (?)
-
Delete services from registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ActiveWorksBrokerMonitor_3.0 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\webMethodsBroker_6.1_6849
Integration Server
… see “webMethods Integration Server Administrators Guide.pdf”
- url: http://localhost:5555
- url: http://localhost:9999 (diagnostics port with a dedicated thread)
… default users
- file:
{WM_HOME}/IntegrationServer/config/users.cnf
- user:
Administrator
/manage
- hash:
vI5TC3V31VdoYdyukqpb7AYXHXQ
- hash:
- user:
Developer
/isdev
- user:
Replicator
/iscopy
- user:
… starting up
-
Debug/Safe mode:
{WM_HOME}\IntegrationServer\bin\server.bat -debug 4 -log none {WM_HOME}\IntegrationServer\bin\server.bat -safeboot
-
If it fails to run after improper shutdown, delete file:
{WM_HOME}\IntegrationServer\LOCKFILE
-
To run as a service, use installation file:
{WM_HOME}\IntegrationServer\support\win32\installSvc.bat
-
When running multiple instances on the same machine, tweak:
{WM_HOME}\IntegrationServer\bin\ini.cnf {WM_HOME}\IntegrationServer\bin\jcode.bat
-
Setup X-Referencing:
{WM_HOME}\IntegrationServer\config\server.cnf
watt.server.xref.type=jdbc # jdbc - use connection pool # repo - use repository (see clustering) [default]
… extended settings
watt.server.ns.hideWmRoot=false
Repo Server
To be able to start it after the initial setup:
-
Manually create logs directory:
{WM_HOME}\IntegrationServer\reposerver\log directory
-
Create lib directory and put there the JDBC Driver jar:
{WM_HOME}\IntegrationServer\reposerver\lib
or else you’ll get the error:
[ISC.0067.0099C] Repository Server initialization failed
-
Install fix
IS_6-1_Fix14
to run as a service or else it aborts starting up:System error 1067 has occurred.
Jdbc adapter
- URL format, see “IntegrationServerAdminGuide.pdf” (pag. 86)
… Oracle:
jdbc:wm:oracle://host_or_IPaddress:1521;SID=database_name
… SQL Server
jdbc:wm:sqlserver://host_or_IPaddress:1433
;databaseName=database_name
;SelectMethod=cursor
… DB2 UDB
jdbc:wm:db2://host_or_IPaddress:50000
;databaseName=database_name
;PackageName=package_name
;CreateDefaultPackage=true
;ReplacePackage=true
… DB2 (AS/400)
jdbc:wm:db2://host_or_IPaddress:446
;LocationName=location_to_access
;PackageName=package_name
;AlternateId=schema_to_use
;CollectionId=package_collection
… driver classes
// DataDirect Connect
com.wm.dd.jdbc.oracle.OracleDriver // JDBC Oracle Driver
com.wm.dd.jdbc.sqlserver.SQLServerDriver // JDBC SQL Server Driver
com.wm.dd.jdbc.db2.DB2Driver // JDBC DB2 Driver
com.wm.dd.jdbc.sybase.SybaseDriver // JDBC Sybase Driver: TN Only
// DataDirect SequeLink
com.merant.sequelink.jdbc.SequeLinkDriver // JDBC Driver: TN Only
… adapter services
- Copy an existing connection in the admin pages
- Find dependents on the old connection
- For each service, call the
WmART
package servicepub.art.service:setAdapterServiceNodeConnection
using the service name and the new connection alias - For each notification, call the
WmART
package servicepub.art.notification:setPollingNotificationNodeConnection
instead
- NOTE: use different connections for adapter services and adapter notifications (HF: why?)
Debug from Java or JSP to server.log
… send DEBUG
messages directly to the server.log
from inside an IS java service
-
Used in the implementation of the
pub.flow.debugLog
service:com.wm.util.JournalLogger.log(3, 90, 4, "message"); // 3 ... param = "code" , value = ?!? // 90 ... param = "facility", value = FAC_FLOW_SVC // 4 ... param = "severity", value = DEBUG
My webMethods Server (MWS)
… configure database access without using the installer
- Edit file:
webMethods7\MWS\server\default\config\db.xml
… example connection block, using a local Oracle 10g XE
<CONNECTION default="true" displayname="Default" id="1"
name="default" type="oracle">
<SQLWORKERCLASS>com.webmethods.portal.service.sql.core.BaseSqlWorker</SQLWORKERCLASS>
<CONNPROVIDERCLASS>com.webmethods.portal.service.sql.core.provider.pool.PooledConnectionProvider</CONNPROVIDERCLASS>
<PARAMS>
<DRIVER>com.wm.dd.jdbc.oracle.OracleDriver</DRIVER>
<URL>jdbc:wm:oracle://localhost:1521;serviceName=XE</URL>
<USER>wm</USER>
<PASSWORD>{DES}MddXF68fUu0=</PASSWORD>
<MAXCONNECTIONS>100</MAXCONNECTIONS>
<CACHESTATEMENTS>false</CACHESTATEMENTS>
<TESTSQL>SELECT 1 FROM DUAL</TESTSQL>
</PARAMS>
</CONNECTION>
… change web service timeout for a CAF application
- url: http://localhost:8585
- user:
sysadmin
- pass:
manage
- path: Folders ➤ Administrative Folders ➤ Administration Dashboard ➤ Configuration ➤ CAF Application Runtime Configuration
Designer
Preferences to prevent slow background operations
- Open menu “Windows” ➤ “Preferences…” and, on the left side panel, select:
- Version 7.x
- Server
- Uncheck “Automatically publish to local servers”
- Uncheck “Automatically publish to remote servers”
- Validation
- Check “Suspend all validators”
- webMethods ➤ Metadata Library
- Check “Disable Workspace Asset Indexing (takes effect on next restart)”
- Server
- Version 8.x
- Open each MwS on the server panel (right-click)
- Check “Never publish automatically”
- Validation
- Check “Suspend all validators”
- Software AG ➤ Workspace Index
- Check “Disable Workspace Indexing”
- Open each MwS on the server panel (right-click)
- Version 7.x
Setup problems with caf.default.runtime
-
Eclipse workspace default runtime settings file:
{WORKSPACE_HOME}\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.wst.server.core.prefs {WORKSPACE_HOME}\.metadata\.plugins\org.eclipse.jst.j2ee.ui\dialog_settings.xml {WORKSPACE_HOME}\.metadata\.plugins\org.eclipse.wst.server.core\servers.xml
-
In each portlet project:
{PORTLET_HOME}\.classpath {PORTLET_HOME}\.settings\org.eclipse.jst.common.project.facet.core.prefs {PORTLET_HOME}\.settings\org.eclipse.wst.common.project.facet.core.xml
CAG: Project not compiling and/or not showing portlets in the solutions
NOTE: If on Windows, make sure there are no “hidden” or “read-only” files in the portlet project.
In the “Navigator” tab, the project folder needs to have a “world” icon to be considered a CAF project. If not
- Select “Project” ➤ “Properties”
- Select “Project Facets” (on the left side panel)
- Press “Modify Project…”
- Select in the Configurations: “CAF Portlet Application”
- Press “Finish”
- Select “Java Build Path” (on the left side panel)
- Remove duplicates ➤ Ok ➤ Add single again
CAF: Object ids formats
:myForm:myObject // absolute
myForm:myObject // relative
myPortleAlias#myForm:myObject // external
$myObject // raw html
CAF: Get object by id
CAF.model("#{activePageBean.clientIds['objectId']}")
CAF: SOAP monitor
-
install:
copy {WM_HOME}\MWS\components\development\tools\wm_soapmonitor.pdp {WM_HOME}\MWS\server\default\deploy
CAF: Client side logger
… bookmarklet
- install: http://server:port/wm_cafshared/ui/js/bookmarklet/
- execute:
CAF Logger; List Scripts
… Firebug
-
You can direct CAF Logger messages to the Firebug console with the following Javascript:
Logger.appendToFirebug();
-
Alternately, you could start a
Logger.FirebugAppender
instance that listens to a custom log level and/or category (so as to avoid all the CAF debug messages):Logger.history.replay(new Logger.FirebugAppender(Logger.INFO, "my-category").start().append);