Wednesday, August 24, 2005

Wednesday’s Sessions

I finally managed to catch an AM session: Marty Mallick's presentation on RFID 101 – Understanding RFID. During the discussion on different readers, Reed Shilts noted that there is an RFID reader available for PocketPCs as well. The Wireless Dynamics SDID reader comes in a SD memory card form factor.

SDID RFID Reader
SDID RFID Reader for PocketPCs

Lunch was in the exhibit hall. Well done as far as I could tell, I spent most of the time in the PBDJ booth.

Next stop was Xue-song Wu's presentation on PB.Net. Unfortunately I got there late (I had to tear down the PBDJ booth first) and Xue-song finished early, so I only got to see a small portion of his presentation. I think most people were somewhat disappointed in that so far all they have ready to demonstrate is using PB to compile a console application that uses .Net components (rather than a GUI application).

My final PM session was Evan Ireland's on the PowerBuilder Application Server Plugin. It is composed of several pieces:

Deployment Tool (wraps PB as EJB)
Server Runtime Library
Remote Debugging Component
Web DataWindow Component
Proxy Server, permits PB clients to call deployed PB components without a local JVM

The supported application servers are:
Geronimo 1.0
JBoss 4.0
Oracle 10
Weblogic 8.1
Websphere 6.0
Others may work, but your mileage may vary

The supported platforms are:
development
Windows
server
Windows
Solaris
AIX
HP/UX

Evan asked if anybody was interested in a Linux version, and nobody responded.

Supported PB versions
10+ is supported
9.0 isn't supported, but you can try
Also, if an EAServer PBVM patch comes out, it's recommended you apply it to the PASP as well

You can install multiple copies on the machine, each copy in a separate installation directory. Incidentally, the 'plumbing' isn't PBNI, it's a interface that was developed in the PB8 days so that EAServer could call into the PBVM. It's just been extended to other application servers.

The deployment tool will wrap your PB NVOs as standard EJB session beans. Target specific deployment descriptors are generated to automate the binding of JNDI names and JDBC data source resource references. Use the %PB_SERVER_HOME%/config/pb-server-XXX.xml file to map PB cache names to JNDI names for JDBC data services. This applies even when using native drivers. You can use SQLCA within your component, and each component will have it's own private copy of SQLCA. Special JDBC driver class and database URL to use when using native drivers so they get managed as if they were JDBC connections even though they're native drivers. If you need 2 phase commit, you currently need to use JDBC. Support for native drivers may come later. Sybase Open Client has been working for a while. Oracle native has just been implemented. Still working on ODBC.

PowerBuilder components don't return arrays. Instead, define a structure type and then make one component an array.

For improved performance, use PB NVO instance variables and create the ds and assign the dataobject in the NVO constructor (setting the dataobject to a datastore is a very expensive operation). But check application server memory usage.

For error logging, use the Errorlogging class.

Supported Methods for TransactionServer class
CreateInstance
DisableCommit
EnableCommit
IsCallerInRole
IsTransactionAborted
SetAbort
SetComplete

CreateInstance - Use the two argument form and specify full JDNI name of target component

If the NVO making the call is not in the same EJB-JAR as the component being called, you might have issues with the class loader. Sybase does not support cross EJB calls, you have to work with your application server vendor to see if it is supported. It is supported in EAServer.

Proxy server - you can specify multiple proxy servers for failover/load balancing. Supports a proxy cluster, so the clients don't have to have all addresses (you still list more than one in the client file, but not all of them). However, don't set up the proxy server unless you are going to call from PowerBuilder clients.

Shared and Service type components are only supported by EAServer.

For the initial beta, you'll need to specify the java package to deploy to in a comment field. The PB client needs to be modified to support the additional parameter.

Don't use the Web Services tab for deployment for other platforms. With the initial beta, you have to add a comment to indicate web services deployment. Result sets are not supported yet, use structure/array instead.

You can delete generated files after deployment, but if you leave them in place it speeds up later deployments. Don't delete the generated files if you are using the proxy server, as it uses them.

The deployment converts naming conventions to Java standards (CamelCase).

Comment entry is currently used for security as well.

Automatic deployment has to be on for JBoss, and it doesn't always seem to work without restarting the server.

Automatic deployment doesn't seem to work all the time for Oracle as well, though they (Oracle) may have that fixed.

WebLogic – must deploy when the server is in development mode.

I wonder if it would be possible to come up with a dynamic properties definition dialog that would read an XML file to determine what options should be shown. That way additional properties could be added by modifying the XML file, rather that requiring new builds of the IDE.

Release: 1H2006 – All other details are TBD (licensing, packaging, pricing) Sept/Oct for beta

1 comment:

Kandarp said...

Why Sybase has not considered linux platform for 3rd party application server deployment? Any roadmap for the same?