Interesting article about Weblogic Entity EJB clustering

See Dmitri Maximovich's Blog. With very interesting articles about:

  • CMP entity Ejbs clustering behaviour regarding 'Optimistic concurrency' strategy
  • Weblogic server v9 new entity Ejb clustering features

If entity Ejbs 2.1 are a “nightmare” to develop and test compared to transparent persistence frameworks of POJOs like Hibernate, some containers like BEA's one offer nice features to build up a R/W distributed cache (of persistent data).

But it's also true that some distributed cache products can also plug into hibernate… see Hibernate's doc and Tangosol


Currently, I am learning Websphere 5.1 administration and I am amazed howsimilar it is to Weblogic Server 8.1. OK, they are both J2EE 1.3 applicationservers but even in non specified fields they look similar. They clearly seemto have copied one another.
For example, the Websphere 's wsadmin tool can now be used in Jython scripts like Weblogic'sWLST. Weblogic Diablo's v9 console will support atomic operations and will be basedon a Struts app like Websphere console,etc.
I liked the Websphere SOAP JMX connector feature and more globally its integration with IBM products family (or sphere I should say). But this latter point seems also to be its weakness because it seems to be less open than Weblogic ( for example on JVM side and security authenticators). I haven't studied Websphere's cluster capabilities but Weblogic ones are “good” in repect to EJB CMP entities clustering (for JMS its another issue…). The problem is that Weblogic cluster additionnal features for CMP EJBs like lazy loading for finders or relations, caching for read-only or optimistic concurrency strategies are often unknown by developers (another issue too…). My first impressions on Websphere on v5.1 are good, better than I expected (last time I used Websphere was for v3.5…)

Passing through corporate Firewall (Part2)

Last time I have used the combination of proxytunnel and SSH to connect tomy home machine from a corporate network behind a firewall and proxy. But it seems that proxytunnel is unable to pass through Microsoft ISA Proxy server. At least, I have tried with the -u and -p arguments of proxytunnels and it didn’t work (even with a username following this pattern domain\username or username@domain) The Microsoft ISA proxy server requires NTLM authenticationand there’s another combination that worked successfully to be able to connect through it to an external machine on SSL :Ntlmaps, Corkscrew which tunnels ssh through HTTPS and of courseSSH.

Ntlmaps is a Python program that acts as a proxy software that allows you to authenticate via an MS Proxy Server using the proprietary NTLM protocol. Once downloaded, all you need is to configure the hostname/port of your corporateproxy and your Windows domain username/password (I left other options with their default values).

Corscrew can be compiled with Cygwin tools under Windows. Once compiled and installed configure SSH to use it. In order to do so, edit your ~/.ssh/config file and use the following command:

 ProxyCommand /usr/local/bin/corkscrew 5865 %h %p

Corkscrew will use your local ntlmaps proxy server which in turn is authenticated on Microsoft proxy server. Then use SSH (openSSH) like this :

# ssh -C -N -D 1080 -p 443 root@myhomemachine

-D to use the SSH daemon at the other side of the tunnel as a Socksv5 proxy server. It will listen locally on port 1080

  • -C for compression
  • -D to not start a shell

Then you can configure your software to use the Socks proxy server on localhost port 1080

Proxying Weblogic SNMP Agent

Today many middleware and back end enterprise systems embedtheir own SNMP agent (or at least send SNMP traps). SNMP agentsare polled by SNMP managers or enterprise monitoring systems likeTivoli Netview or HP Openview.

Weblogic offers the ablity to proxy the OS SNMP agent and other SNMP agents butgenerally it’s better to use the OS’s SNMP agent asa proxy for all applications SNMP agents hosted on your machine.(Mostly because if the OS SNMP agent fails it’s likely that the machine isdown and all its applications also ;-) whereas if Weblogic SNMP agent fails the OSmight still be alive).

In order to achieve this goal on Linux/Unix, you can use the net-snmp(a.k.a ucd-snmp) to proxy SNMP requests to Weblogic server’s SNMP agent.And it’s pretty straightforward.

The Weblogic domain is composed here of 2 Weblogic servers one administrationserver adminserver and 1 managed server ejbserver on the hostname machine. The Weblogic SNMP agent runs on port1610 of the administration server and is allowed to received requests and send traps for the weblogicpublic community.

Here’s the net-snmp snmpd.conf I used:

syslocation "SunOS hostname 5.8 Generic_108528-16 sun4u sparc SUNW,Sun-Fire-480R"
syscontact "Root "
rocommunity public
rocommunity weblogicpublic
rouser myuser noauth
proxy -v 1 -c weblogicpublic hostname:1610 .
proxy -Cn adminserver -v 1 -c weblogicpublic@adminserver hostname:1610 .
proxy -Cn ejbserver -v 1 -c weblogicpublic@ejbserver hostname:1610 .

Line 4: we authorize the weblogicpublic community to perform SNMP polling requests.

Line 6: by default SNMP requests are forwarded to Weblogic SNMP agent without context for all requests that concern the Weblogic server MIB (starting with . OID)

Line 7: a context is configured to address the adminserver Weblogic server

Line 8: same as above for the ejbserverDon’t forget to add the Weblogic‘s MIB in the net-snmp MIB repository and you’re done.