The Monty Hall problem, or paradox as it is sometimes known, has always intrigued me, so much so that I wrote a python based simulator to prove it to be true or false. The crux of it, and as its…
Category: Development
Weblogic WLST – Accessing OS variables
As with all thing wlst, almost everything you can do in python you can do in wlst. Below is just a simple example of accessing host variables from inside of weblogic. [sa-weblogic@cmhldecomadm01 Middleware]$ export FOO=”BAR” [sa-weblogic@cmhldecomadm01 Middleware]$ ./Oracle_Home/oracle_common/common/bin/wlst.sh Initializing WebLogic…
Why isn’t my cursor being shared?
This is a decent way to determine why a cursor isn’t being shared, resulting in cache locking during parsing (134 minutes total yesterday, which is very high historically)… SQL> select count(*),sql_id from gv$active_session_history where event = ‘library cache lock’ group…
Using Apache POI to generate Excel spreadsheets from database queries
Back in the 90’s when I first started working with computers professionally, I remember finding software for $49.95, and often much more, to do on Microsoft Windows what is now free. Apache POI (“Poor Obfuscation Implementation” 🙂 ) is a…
Gathering information from HotSpot garbage collection logs
What is below is a useful script to print actionable information from garbage collection logs. As shown by the CMS output below, this is built for the CMS collector. Anything with initial-mark or remark in the output is a “stop…
Is “Connection refused” always a network issue?
We are trained to think that if we see “java.net.ConnectException: Connection refused”, we need to talk to our friends in networking. However, below is at least one example where this is not the case. Create a very simple socket server…
Getting count of sessions created by minute
In the wake of a flood of 24,000 application server sessions created per minute at the start of Black Friday week, we wanted to share how we calculated how many sessions were created per minute. This can be obtained from…
When does the CMS collector run by default
Assuming no other flags are set, when the tenured generation heap is 90% full. We have an 7968MB heap, and a 2048MB young generation. As such, our tenured generation is approximately 5920M. Below we show the initial mark starts at…
Interrupting a thread in java
Often, someone will wish to somehow terminate a thread that is causing issues. These issues could be things such as blocking threads that prevent other threads from doing work, or something that is using a lot of CPU. While the…
Dump ATG publishing cluster state
The ATG publishing infrastructure maintains a cluster state file on each target. This is used to sync up with the Business Control Center (“BCC”) content, and ensure they match. When troubleshooting, it can be helpful to print the contents of…