I had to run some tests on a
WebCenter Portal application deployed in a cluster. I've got a development VM with
WebCenter PS4 (this also works on PS5) and I was trying to figure out how could I easily add a new managed server to my single-node domain, and make it a cluster. Creating the machine and cluster are a piece of cake, you can do it pretty quick through WLS Console. Now, you'd guess that using the clone option on WLS Console would do the magic of cloning an existing instance, right? Well, it does, but all you get is an "empty" managed server: with no target libraries.
It was a good surprise to find that
WebCenter provides a way of cloning an existing
WebCenter Portal managed server through a simple WLST command: cloneWebCenterManagedServer
This is a screenshot of my starting point. I want to clone WC_CustomPortal managed server:
These are the steps to clone my WC_CustomPortal managed server:
1. In the command line, invoke WLST. It should be on <ORACLE_HOME_for_component>/common/bin/wlst.sh. In my case, it is ./product/Middleware/WebCenterPortal/common/bin/wlst.sh
2. Connect to the Admin Server: connect ('<wls_admin_username>','<password>','t3://<server>:<port>')
3. Execute the following command:
wls:/webcenter/serverConfig> cloneWebCenterManagedServer(baseManagedServer='WC_CustomPortal', newManagedServer='WC_CustomPortal2', newManagedServerPort=8893, verbose=1)
I've turned on verbose output on purpose so I could see what the script was doing while executing. This is the output:
[...]
Creating the Managed Server "WC_CustomPortal2"
MBean type Server with name WC_CustomPortal2 has been created successfully.
Targeting the library "oracle.bi.
adf.model.slib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.bi.
adf.view.slib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.bi.
adf.
webcenter.slib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.wsm.seedpolicies#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.jsp.next#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.dconfig-infra#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "orai18n-adf#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
adf.dconfigbeans#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.pwdgen#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.jrf.system.filter" to the Managed Server "WC_CustomPortal2"
Targeting the library "adf.oracle.domain#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "adf.oracle.businesseditor#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
adf.management#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "adf.oracle.domain.webapp#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "jsf#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "jstl#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "UIX#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "ohw-rcf#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "ohw-uix#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
adf.desktopintegration.model#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
adf.desktopintegration#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.bi.jbips#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.bi.composer#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.skin#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.composer#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.framework.core#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.sdp.client#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.soa.workflow.wc#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.soa.worklist.webapp#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.ucm.ridc.app-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "p13n-app-lib-base#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "p13n-core-web-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "jaxrs-framework-web-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "jersey-web-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "wcps-util-app-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "wcps-services-client-web-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "content-app-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "content-web-lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.framework#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.framework.view#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.forum.dependency#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.jive.dependency#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.spaces.fwk#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the library "oracle.
webcenter.activitygraph.lib#
[email protected]" to the Managed Server "WC_CustomPortal2"
Targeting the datasource "mds-CustomPortalDS" to the Managed Server "WC_CustomPortal2"
Targeting the datasource "WebCenter-CustomPortalDS" to the Managed Server "WC_CustomPortal2"
Targeting the datasource "Activities-CustomPortalDS" to the Managed Server "WC_CustomPortal2"
Targeting the application "wsil-wls" to the Managed Server "WC_CustomPortal2"
Targeting the application "DMS Application#11.1.1.1.0" to the Managed Server "WC_CustomPortal2"
Targeting the application "ViewHandlerOverride_webapp1#V2.0" to the Managed Server "WC_CustomPortal2"
Targeting the application "ViewHandlerOverride_application1#V2.0" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "JRF Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "JPS Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "ODL-Startup" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "Audit Loader Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "AWT Application Context Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "JMX Framework Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "Web Services Startup Class" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "JOC-Startup" to the Managed Server "WC_CustomPortal2"
Targeting the startup class "DMS-Startup" to the Managed Server "WC_CustomPortal2"
Targeting the shutdown class "JOC-Shutdown" to the Managed Server "WC_CustomPortal2"
Targeting the shutdown class "DMSShutdown" to the Managed Server "WC_CustomPortal2"
Validating changes ...
Validated the changes successfully
[...]
And this is the newly created WC_CustomPortal2 managed server showing up on Weblogic console:
Here is the full reference to WebCenter Portal Custom WLST Commands.
Special thanks to Todd Vender for pointing this one out! :-)