dev@glassfish.java.net

Re: SQLAnywherePlatform Status Update

From: Lance J. Andersen <Lance.Andersen_at_Sun.COM>
Date: Mon, 08 Jan 2007 17:12:55 -0500

Hi Markus,

Markus KARG wrote:
> Lance (and Tom),
>> It is important to support jConnect and SQLAnywhere's driver. Using
>> jConnect, you should be able to get the platform to behave like
>> Sybase ASE.
> While I agree with you that jConnect should be provided, we should be
> careful about the design we're applying: We should abstain from
> putting jConnect things into SQLAnywhere platform, since jConnect is
> not part of the product (the product manual just tells where to get
> jConnect and how to use it, but there had been times when jConnect was
> a sold product, and no one knows what Sybase plans in the future.
> Maybe they sell their shares and iAnywhere will no more be Sybase
> affiliate -- what then?). From my opinion, the best solution is to
> make TopLink learn that a driver and a dbms are two different things
> -- it should allow to place. Unless that is supported, maybe it would
> be best to put the jConnect specifics in some kind of inner class (if
> you don't like the idea of having different
> JConnectSQLAnywherePlatform and IAnywhereSQLAnywherePlatforms, as I
> proposed)?
>
The iAnywhere manuals clearly indicate that both drivers are supported
by SQLAnywhere 10.

Also, please let us not speculate on the future of iAnywhere as it is
and has been a Sybase company for many years.

How the internals are designed are an implementation detail. My point
is both drivers need to be supported. This does not mean to
delayintegrating your changes, just that we need to make sure the work
for jConnect does not get dropped long-term.
> And what do you mean with "...you should be able to get the platform
> to behave like Sybase ASE"?
SQL Anywhere supports ASE syntax and this is one of the reasons that TDS
protocol support was originally added to the product.
> Which SQLAnyhwere user wants that actually? I mean, if I want ASE then
> I buy ASE. This is a GF discussion, and if I have SQLAnyhwere then I
> want GF to talk to it like SQLAnywhere and not to talk to it like ASE
> actually. What sense should it make to let GF talk to SQLAnyhwhere in
> ASE mode but not use the existing SybasePlatform for that?
I would disagree with this. There is a user base that has apps that run
on both ASE and ASA using the ASE dialect. jConnect has been used for
many years as the primary JDBC driver and it still has an advantage in
the fact that it is a type 4 driver in certain scenarios.
>> The Sql Anywhere 10 docs are quite clear that both the jConnect and
>> the iAnywhere (jdbc-odbc bridge) driver are supported, so we
>> definitely want to get both of these humming.
> On the other hand, jConnect is not to be found in the box when buying
> SQLAnywhere, and there are third party drivers for SQLAnywhere, too.
> What about them?
SQLAnywhere and jConnect are products of Sybase. Up until ASA 10,
jConnect was bundled with SQL Anywhere. In fact there is still a
reference in the ASA 10 docs that indicates that it is still bundled
even though it is not bundled..

The download page for ASA 10 includes a link to download jConnect.
There are also a lot of apps that still use jConnect, and while yes this
is targeting new applications with Toplink Essentials, it is important
to have support for both drivers that are officially supported by SQL
Anywhere.

Additional 3rd party drivers we need to consider on a case by case basis.


> Also I do not see that iAnywhere is supporting jConnect but isn't it
> the reverse way actually -- jConnect is supporting SQLAnyhwere? In
> fact, to make jConnect work, you must apply two options that
> administrators might have "switched off": You must add ASE additions
> (which are on by default, but you can opt out), and you must add
> jConnect additions (otherwise jConnect will not work correctly). If I
> have enabled both, IMHO I can use SybasePlatform, since I have a more
> or less full ASE emulation enabled then.
>> I also do not know if/when we have done a full test run of ASE using
>> jConnect 6.0.5, i know we have not done a full compliance run with
>> this driver so it is possible that the issues are generic.
> Maybe you like to run a FullRegressionTest using jConnect 6.0.5 on a
> "real" ASE using SybasePlatform first, before trying to emulate ASE
> 12.5 using SQLAnyhwere 10 ? I think that makes more sense. What I
> wanted to provide is a native SQLAnywhere platform, using a native
> iAnywhere driver. I didn't want to provide an ASE emulator. ;-)
Yes we need to make sure that jConnect 6.x works correctly in a Java EE
5 environment. The reason we stopped testing jConnect as the early
versions of jConnect 6 did not support enough of JDBC 3 as required by
the J2EE 1.4 specification. This has since been corrected and I agree
this is important to do as there are many ASE users using jConnect and
it is the native driver from Sybase.

Both the iAnywhere driver and jConnect are Sybase JDBC drivers for SQL
Anywhere. iAnywhere has changed their bundling, not their support of
jConnect.

It is also not an ASE emulator. ASE syntax has been incorporated into
ASA and has been there for years (as long as TDS support has been
there). This means you can use ASE and ASA specific queries against ASA
allowing for an easy migration of apps from ASE to ASA and from ASA to
ASE if you keep in mind the syntax differences.

And yes if you are a sole SQL Anywhere shop, you could care less about
ASE T-SQL syntax. However there are users who do care so we need to try
and address both camps.
>> SQL Anywhere has a very large install base and it will only benefit
>> continued JPA/toplink essentials adoption to get SQL Anywhere supported.
> Certainly. We're just discussing the best way to provide that. :-)
And the work you have done is great and i welcome it. I just want us to
support both drivers, given one is a type 2 and the other a type 4 driver.

Thanks for all of your efforts and continuing the discussion.

Regards
Lance


>
> Have Fun
> Markus