Let me quickly summarize the all differences between development and production startup mode for WebLogic 12c and previous versions. Information about it is scattered across the Oracle documentation and several blog postings but non of those I checked were complete.
Differences
Startup Mode |
Development | Production | |
Auto deployment |
Yes | No | |
Automatically created |
Yes | No | |
Nodemanger username and password |
default admin credentials |
randomly generated |
|
SSL demo certificates cause warning in log files |
No | Yes | |
Log file are rotated at server startup |
Yes | No | |
On demand deployment of internal applications as default |
Yes | No | |
Availability of web service test client |
Yes | No | |
Availability of Classloader Analysis Tool |
Yes | No | |
Availability of Fast Swap |
Yes | No | |
Change Center Enabled |
No | Yes | |
Default start parameters |
java |
java |
|
The following settings in the weblogic.xml deployment descriptors default to -1: |
No | Yes | |
Differences in previous WebLogic versions: |
|||
Up to WebLogic 11: Default JDK used for new domain |
Sun | JRockit | |
Up to WebLogic 8 only: |
15 | 25 | |
Up to WebLogic 8 only: |
15 | 25 | |
Configuration
There is different ways to configure the WebLogic startup mode:
- The startup mode can be configured with the admin console, as shown on the screenshot below (requires a restart). Once it’s set to production mode it cannot be reverted with the admin console.
- Supply the -Dweblogic.ProductionModeEnabled=true
- Set the PRODUCTION_MODE variable in the setDomainEnv script in the directory DOMAIN_NAME/bin.
What you should know
Some issues to be aware of:
- The differences between the two settings depend on the WebLogic version. This can be a bit confusing when you are running different environments with different versions. See the table above: For WebLogic 8 the maximum number of connections in a JDBC connection pool defaults to 25 in production mode (but 15 in development mode); for WebLogic 12c it defaults to 15 in both cases.
- You cannot revert to development mode from the WebLogic admin console. It’s like the child-proof lock in the back of your car. I understand that is makes sense to protect the children in the back seat your car from themselves but you are are logged with the admin role – still you cannot revert to development mode using the admin console.
- Autodeployment is not used that much anymore since it only deploys to the admin server – so it doesn’t make sense for a production domain. What if you are a developer? Then your IDE is deploying to the admin server, that is correct – but your IDE is typically not using autodeployment.
- Note, that there will be a randomly set user and password for nodemanager when creating your domain in production mode with config.sh (see comments from Jacco).
- You cannot disable the change center in production mode
Something I forgot? I appreciate your feedback.
[A more detailed discussion with directions will be part of my upcoming WebLogic 12c book]