CUBRID / cubrid-manager

repository for cubrid manager
10 stars 30 forks source link

Update JDBC Drivers #38

Open paulgheorghecristian opened 7 years ago

paulgheorghecristian commented 7 years ago

The "update jdbc drivers" feature doesn't work as expected, it doesn't fetch the most recent jdbc driver. If I use this feature to get the jdbc drivers and I use cubrid manager server version 10.1, it's impossible to connect to a host because I will get errors (doesn't detect or I didn't select a valid driver). To get around this, I had to manually download jdbc version 10.1.0.7208.

@ribram sees two options for this: 1) We accept lower versions of the jdbc driver (currently we accept only the versions that are greater than the server's. 2) We make the error more verbose.

ribram commented 7 years ago

Actually, the issue is not update jdbc drivers. JDBC 10.1 is not public yet.

The issue is connecting to CUBRID Manager Server in Manager Mode when using an older JDBC driver. This is the error message it throws: image

The first question is if the limitation is needed. As far as I know, we tried to maintain the compatibility between different JDBC versions and server versions.

If we want to keep the limitation, I think the error message should be more clear on what a proper JDBC means.

eseokoh commented 7 years ago

@paulgheorghecristian Thanks to open the issue to discuss.

@ribram Thanks to clarify the issue.

I think neither the limitation nor the error message is acceptable. As Remzi wrote, we have tried to keep backward and forward driver compatibilities. (It is one of daily regressions.)

I don't know why we have had the limitation. If we don't have a big issue, I'd like to propose to remove it. :)

newpcraft commented 7 years ago

@paulgheorghecristian

Even if most cubrid jdbc drivers have the compatibility on most different cubrid servers, we may don't know that old version of driver exactly compatibile for the future version of server. So, it seems that a product manager had decided to disallow the future version drivers without release new cubrid manager version.

I think it would be enough to check only a major version of driver even future version of cubrid server. However, the message should be more clear.

There are another information what you should know. unlike jdbc driver, there are the version limitation between cubrid manager and cubrid manager server. When you try to connect new version of cubrid manager server, without change the code, you can't connect a future version of cm server. Because we don't know what feature would be provided in the future version, so we have had such limitation on the manager mode.

hun-a commented 7 years ago

In my case, when customer was used different versions between CUBRID server and JDBC driver that makes jdbc connection was closed in sometimes. That was just JDBC connection lost but public customers were thought CUBRID server was down, and that thought makes could be not good awareness about CUBRID. I resolved that issue when I matched versions of CUBRID server and JDBC driver and explained to customers reason why. Because of this and another issues, in CUBRID, we recommends that the CUBRID server and JDBC driver versions should match.

I have same idea as @newpcraft and @ribram , that message should be more clear than now.

eseokoh commented 7 years ago

@seunghun-kim

Please show us more details of your experiences. We need clearer facts (evidences) such as CM, jdbc and server versions to investigate the trouble. There might be issues on legacy versions but I don't think the current developing version has an issue. As I wrote above, daily regression tests for compatibilities says no issue.

hun-a commented 7 years ago

@eseokoh

As you mentioned above, my cases were occured in legacy versions like 8.4.x to 9.2 - not current versions - and only occured when the version of JDBC driver was lower than CUBRID server. Unfortunately we couldn't have taken out logs about connection closed because that customers are government agency and they are not allow take out any information about them for security issue. But I remeber some piece of log like COMMUNICATION ERROR in sql_log directory.

I think that all users use not only current version but also legacy versions too and legacy versions are used more. So, for reduce the unknown issues about version mismatch between CUBRID server and JDBC driver, we need to check the JDBC driver's major version is same as CUBRID server.

eseokoh commented 7 years ago

@seunghun-kim

Can you find a reproduction?

hun-a commented 7 years ago

@eseokoh

Not sure I'll find a reproduction step but I'll try it.