Tuesday, May 13, 2014

Gatling for Scala-based load test

I have just assisted to a presentation of Gatling, a Scala/Akka-based framework to do mainly HTTP load tests. It promises to scale EXTREMELY well, being based on the Actor Model, it doesn't consume 1 Thread per Virtual User, nor it blocks on I/O (don't ask me for details...)

https://github.com/excilys/gatling/wiki/Concepts

http://gatling-tool.org/

What I like most is that your tests are written in Scala, so fully refactorable using any Scala IDE (Idea, Eclipse) and fully customizable. No need to reinvent the wheel, just use a solid one that most people already know.

Thank you Nicolas Remond for the excellent demo!



Monitoring CPU usage of a WebLogic server over time

you can either use top, where PID is the Managed Server's processid:
top -b -p $PID

or ps:
ps -p $PID  -o %cpu | tail -n +2


Unfortunately collectd doesn't seem to be able to collect CPU usage for a specific user or PID.



Friday, May 9, 2014

WebLogic dbping

The good old weblogic dbping utility seems to require the weblogic.jdbc.oracle.OracleDriver class with the ORACLEB option, and I have no clue where to find it (not in /opt/oracle/fmw11_1_1_5/oracle_common/modules/oracle.jdbc_11.1.1/ojdbc6dms.jar) , so... I wrote my little tool:


package com.acme.osb.db;

import java.sql.DriverManager;
import java.sql.SQLException;

public class DBPing {
 public static void main(String[] args) throws ClassNotFoundException, SQLException {
  Class.forName("oracle.jdbc.driver.OracleDriver");
  System.out.println("length " + args.length);
  String user = args[0];
  String password = args[1];
  String url = args[2];
  String now = new java.util.Date().toString();
  System.out.println(now + " user= " + user + " password=" + password + " url=" + url);
  java.sql.Connection conn = DriverManager.getConnection(url, user, password);
  System.out.println("ok");
 }
}




run this
java com.acme.osb.db.DBPing myuser mypassword "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=myport))(CONNECT_DATA=(SERVICE_NAME=myservicename)))"