Monday 3 November 2008

Nodemanager is not starting

bash-3.00$ ./startNodeManager.sh
+ CLASSPATH=/weblogic/bea/patch_weblogic923/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java5_64/lib/tools.jar:/weblogic/bea/weblogic92/server/lib/weblogic_sp.jar:/weblogic/bea/weblogic92/server/lib/weblogic.jar:/weblogic/bea/weblogic92/server/lib/webservices.jar:/usr/java5_64/lib/tools.jar:/weblogic/bea/weblogic92/server/lib/weblogic.jar:/weblogic/bea/weblogic92/server/lib/webservices.jar:/weblogic/bea
+ export CLASSPATH
+ export PATH
+ cd /weblogic/bea/weblogic92/common/nodemanager
+ set -x
+ [  !=  ]
+ [  !=  ]
+ /usr/java5_64/bin/java -Xms32m -Xmx200m -Djava.security.policy=/weblogic/bea/weblogic92/server/lib/weblogic.policy -Dweblogic.nodemanager.javaHome=/usr/java5_64 weblogic.NodeManager -v
weblogic.nodemanager.common.ConfigException: Native version is enabled but node manager native library could not be loaded
        at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:239)
        at weblogic.nodemanager.server.NMServerConfig.(NMServerConfig.java:179)
        at weblogic.nodemanager.server.NMServer.init(NMServer.java:177)
        at weblogic.nodemanager.server.NMServer.(NMServer.java:142)
        at weblogic.nodemanager.server.NMServer.main(NMServer.java:327)
        at weblogic.NodeManager.main(NodeManager.java:31)
Caused by: java.lang.UnsatisfiedLinkError: nodemanager (A file or directory in the path name does not exist.)
        at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:979)
        at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:948)
        at java.lang.System.loadLibrary(System.java:453)
        at weblogic.nodemanager.util.UnixProcessControl.(UnixProcessControl.java:16)
        at weblogic.nodemanager.util.Platform.getProcessControl(Platform.java:114)
        at weblogic.nodemanager.server.NMServerConfig.initProcessControl(NMServerConfig.java:237)
        ... 5 more

bash-3.00$ cd ../..


####################################################################
Resolution :

Just modify the NativeVersionEnabled property to false in nodemanager.properties file, that will solve the pb. If you dont have a property in nodemanager.properties file add one.

Thursday 11 September 2008

Weblogic EOL Details

WLS 8.1:
retirement date: 2009-09-30
end of extended support: 2011-09-30
sustaining support: Yes

WLS 9.1:

retirement date: 2011-11-30
end of extended support: 2013-11-30
sustaining support: Yes

For more information on the terms, e.g. what extended support is, check the first link (the .doc flie) from the given site.

The Product Life Cycle Policy main site:
http://edocs.bea.com/platform/suppconfigs/configs/lifecycle.html

The Customer First Product Retirement Policy:
http://support.bea.com/support_news/support_lifecycle/WLEP_PLC.jsp

The calendar showing planned product retirements:
http://support.bea.com/product_news/BEA_Product_Retirement_Plan.jsp

End-of-life announcements for BEA products, plus information about BEA support for third-party products that have reached end-of-life or are approaching end-of life:
http://edocs.bea.com/platform/suppconfigs/configs/mature.html#51786
http://edocs.bea.com/platform/suppconfigs/configs/mature.html

Friday 7 December 2007

JVM Vs Weblogic

Use JVMs, which provide better performance for server side applications (ex. JRockit). Administration console can be used for monitoring JVM heap usage graphically.

For better performance, test with JVM-vendor-specific options.

For example, these are typical "hotspot" VM options that you can set:

  • -XX +AggressiveHeap - uses heaps that are nearly as large as the total physical memory
  • -XX +UseISM - uses intimate shared memory (Solaris)

AggressiveHeap warnings:

1. Use all available memory
2. Incompatible with -Xms -Xmx
3. The heap might may steal memory from the stack

Intimate shared memory warnings (for Solaris only):

1. Lock memory; use only on dedicated systems
2. Memory fragmentation can prevent allocation of contiguous 4 MB pages
3. Abnormal JVM termination can result in locked segments
4. To discover and delete locked segments, use ipcs and ipcrm

Tips

  • Do not set the server's heap size larger than the available free RAM on a machine.
  • For high performance and throughput, set the minimum JVM heap size equal to the maximum heap size.
  • WebLogic Server's logging feature for low memory condition can be used to sample the available free memory to detect low memory conditions.
  • When monitoring garbage collection, if the heap always settles to 85% free, try reducing the heap size.
  • When setting -noclassgc make sure the perm size is set greater than the default value (32mb).
    Avoid using the -verbosegc option during production run.
  • Use parallel garbage collection algorithms with multiple CPU machines to reduce the garbage-collection pause time.
  • On Intel-based architectures, for better performance, configure WebLogic to use the JRockit virtual machine.
  • To discover and delete locked segments, use ipcs and ipcrm.

Weblogic Monitoring

Use operating-system-specific monitoring tools to observe thread activity and context switching. For example, on Solaris, you can use mpstat, prstat, top to monitor CPU utilization. mpstat exposes CPU utilization, thread interrupts, and voluntary and involuntary context switches. top will help you to find the processes that are using up the CPU.

WebLogic administration console can be used for monitoring running servers, server threads, JVM heap usage, log files, clusters statistics etc. Enabling SNMP monitoring can leverage the existing SNMP monitoring framework, to monitor your WebLogic domain resources through the central admin server.

Section 1.01: Third-party monitoring tools can also be used to monitor application, system resources used by WebLogic Server (Ex. spotlight from Quest, Acsera from Acsera Corporation etc.).

Tips

  • An SNMP agent is an integral part of the admin server in a domain, so admin-server instance failure can become a bottleneck.
  • To monitor WebLogic runtime MBeans, you can use JMX monitoring tools, in addition to the admin console.

Weblogic Threading

To improve WebLogic Server performance, use native I/O (performance pack) if available. To ensure that the performance pack is initialized correctly, check for errors at startup.

Execute queues can be set to automatically increase the threads during overflow condition. But avoid using the server's capability to increase the number of execute threads to manage normal application-load peaks. Rather, do careful capacity planning and server tuning; select an optimal number of execute threads.

Tips

1. Tune the execute thread count only if the CPU is not running at 100% utilization yet client requests are blocked and rejected too often.

2. When tuning the thread count, stop when throughput starts dropping or CPU utilization drops or stays constant.

3. Do not set the Stuck Thread Max Time and Stuck Thread Time Interval so low so that normal requests during peak processing time are mistaken for stuck threads.

4. To partition application components or to provide a dedicated amount of resources to one component, create user-defined execute queues. Using custom execute queues also avoids potential cross-server deadlock situations.

5. To provide a dedicated resource to message-driven beans, use a separate execute queue for each message-driven EJB that is deployed.

6. When troubleshooting deadlocks and long-running requests on WebLogic Server, use a series of properly spaced thread dumps to determine the possible causes.

7. Enabling T3 protocol access over HTTP by tunneling degrades performance by approximately 15%; avoid tunneling T3 over HTTP.

Testing Tips

1. During capacity planning and testing, plan for the peak load that an application might incur.

2. Optimize the application during testing; typically, on WebLogic Server, applications are the most-limiting factor in performance and capacity.

3. When you put a system under stress to test performance, use appropriate, realistic test cases.
4. The closer the test cases are to production situations, the more accurate the test results are.

5. When benchmarking applications, ignore the first few samples; run test samples to "warm up" the server VM.

Weblogic Clustering

WebLogic cluster is group of managed servers from a domain that will act in a coordinate fashion to provide a single server view for the client. Use WebLogic clusters to improve efficiency, scalability, load-balancing and failover. WebLogic cluster is a process level cluster, where the participating servers can be on a different physical machine or on the same machine.

IP Multicast is the backbone for exchanging heart beat signals in a cluster. So make sure multicast traffic is enabled in the WebLogic Server network.

Tips

1. If you use Web Server proxies, configure at least two, to avoid a single point of failure for the cluster.

2. When porting an application from one WebLogic Server to a cluster, ensure that objects stored in an HTTP session are able to serialize.

3. Put at least three WebLogic Server instances in each cluster, so that failure of a server does not stop load balancing of the cluster.

4. You cannot add the admin server to a cluster.

5. Use separate multicast address for each cluster in a network.

6. Servers running in a cluster can listen on different ports from WebLogic Server 7.0

7. If available use separate hardware (NIC) to route cluster multicast traffic by configuring network channels to separate internal cluster traffic from outside client traffic for better performance.

8. Combine frequently accessed applications in one tier of clusters (ex. war and EJB jar) to avoid network traffic.

9. To enable automatic failover of servlets and JSP, use replication technique.

10. In-memory replication is faster than other type of replications.

11. When using in-memory replication, specify the machine information for servers in a cluster.

12. Define replication groups only if you require control over the secondary selection process.

13. Using server affinity wherever possible will improve performance.

14. Use publicly available DNS names to identify the WebLogic Server instances rather than using IP addresses in firewall-enabled environments.

15. If a WebLogic cluster spans multiple sites, the network among the sites must support multicast traffic for cross-site clustering.

16. With this spanning architecture, you must configure the cluster's Multicast TTL value high enough to prevent routers from dropping multicast packets before they reach their destinations.

Securing Admin Console

If you use the admin server to serve applications (or in a single-server domain), do the following for better security:

1. Change the default admin user and password to custom.

2. Change the admin console context root path.

3. Enable domain-wide administration port.

4. Consider disabling the admin console.

If you use an external LDAP provider, store the server boot identity in the embedded LDAP server, and set time-outs on the external LDAP authentication provider. This way, if the external LDAP server is unavailable, you can continue to restart and to serve unprotected data with WebLogic Server. Also before you apply any changes, set the control flag for all authentication providers to OPTIONAL; this prevents a configuration error from causing a production server not to restart.

WebLogic Server provides a custom realm, the NTRealm, based on older security realm APIs, that supports native Windows domain authentication. NTRealm is useful with Windows domains that are not set up to use Active Directory.

Tips

1. Store the server boot identity in the embedded LDAP server.

2. For finer control of a production environment, use Active Directory authentication, rather than native Windows domain (NTRealm) authentication.

3. To prevent denial-of-service attacks, modify the time-out and maximum-size values for the incoming protocol ports (T3, COM, IIOP, HTTP Post time out) on the server.

4. Have a security audit performed by an internal or external auditing group.