Oracle, Unix, WebLogic, Performance
WebLogic has an excellent administration console that lets you monitor threads
but that is limited to real-time monitoring. Unless you have additional software like OEM
, you have to do a little extra work to get historical performance data out of WebLogic.
Recently I had a need to check on the usage of the WebLogic thread pool and given some of the constraints I've been working with, the easiest way to do that was to go look into the WebLogic managed server logs. These were found in $DOMAIN_HOME/servers/<managed_server>/logs
The managed server log has INFO level log entries like this...
With a few commands this can be filtered down to something more usable like a CSV file...
This gives us output that looks like the sample below (note the output of thread pool statistics are in reverse order vs what is written into the log file). The CSV file columns are thread counts for "standby, running, idle"
Review, MetalEarth, Transformers
I've reviewed other Metal Earth Legends
kits like Groot
previously and I've grown to like this series so much I had to look at more kits in the lineup. Today I decided to do something different and build two kits - Starscream
. Of all transformers, Starscream has to be my favourite and Gollum...well he is just precious!
Lets start with Starscream. This is a one and a half sheet model and fits in the medium difficulty scale for a Metal Earth kit. There is only one page worth of instructions, so it really doesn't take too long to build.
The arms were built first. They're just mirror images of one another. After the arms, the front section of the torso was next. This section of the model was made mostly of a single part which was bent and folded like origami into the front section of Starscream.
Programming, Apple, SSL, Security, Internet
If you're a developer and work on a Mac, you've most likely hit this error at some point in time. The dreaded "Safari Can't Open the Page"
error which tends to occur when self-signed certificates are used and changed on servers in a development environment.
Unfortunately all Safari tells you is "Safari can't open the page https://XXXX because Safari can't establish a secure connection to the server XXXX"
. As far as error messages go, it's not very useful. Also, there are no options to continue to the page anyway.
There are two easy ways to get past this error however.
1. Use Safari's "Private Window" to open the page you want.
This approach is ok for a quick one-off event, but doesn't provide a long-term solution. This is because Safari will not keep settings for any actions performed within the private window.
When opening the site you want to visit in a private window, you will be presented with a warning saying "This Connection Is Not Private". Click the "Show Details" button.
You will be warned that the certificate is not valid, but you are also given a chance to visit this website
anyway. Click that. You'll be prompted for your password and then Safari will open the website.
Java, SQL, Database, Oracle, WebLogic
I was emailed an interesting error recently at work that I've not seen previously. It was to do with the DBMS_PICKLER package being missing when using JDBC drivers from a WebLogic application. In this case we were upgrading from an earlier version of WebLogic to the latest (12.2) and that's where we started to see these errors.
This is what the stacktrace looked like...
That indicated that this had something to do with Array bindings, which I knew were used quite heavily in this case. However that wasn't the real issue. The earlier version of WebLogic we had didn't use JDBC drivers that made use of DBMS_PICKLER (11gR2 onwards), but WebLogic 12.2 has JDBC drivers that certainly do make use of it.
What the package does it no really relevant, it's an internal package that's to do with array and custom type binding. What is relevant is that it's owned by SYS. And JDBC appears to call the procedure as if it was in the SYS schema.
The trouble was...we had a table with the name 'SYS' that was inside the schema that the application was accessing. This table was created as part of some patching bug, but wasn't rolled back, so once we moved to new JDBC drivers, it all broke.
The solution was to rename that table to something other than SYS and everything went back to normal!