Connection to repository problems

I have a problem with Servoy Developer. I tried to install version R2 2.1 beta 2 and beta 4, but the result is the same.
I use mysql as repository server on a linux fedora core 2.
The version of Java Software is 1.4.1_03, also with other versions intervened the same error.
I tried all version from my Win2K workstation and from a Linux workstation and the problem occur, from another workstation with WinXP the problem doesn’t arrive!

The errors are listed below:

  1. could not get active solution update sequence java.sql.SQLException: java.lang.ArrayIndexOutOfBoundsException: 2
  2. java.sql.SQLException: Column Index out of range, 4 > 3.

Thanks, Paolo.

What changes did you make to servoy to change the repository connection? What version of mysql are you connecting to?

Paolo,

I think I had the same problem under windows. It’s a mysql problem. Mysql standard comes with myisam table type. Transactions arn’t supported. Therefore you need the innodb tabletype. You have to set your my.ini file to use innodb tabletype(you can find several tutorials how to on the net). To use mysql as repository, you need the transaction-funcion (for rollback) as far as I know. Once this is altered in mysql, I think it should work.

Gert

Is there any way to tell Servoy to create one type of table or another during migration?

If you have tables of both type in, say, mysql, and then migrate to MS SQL, will Servoy recognize and migrate the two different types?

Cain:
Is there any way to tell Servoy to create one type of table or another during migration?

If you have tables of both type in, say, mysql, and then migrate to MS SQL, will Servoy recognize and migrate the two different types?

Yes, Servoy will migrate automatically from any SQL database to any other. It’ll show warnings if you are on a non transactional backend, but hey you WILL be warned if you aren’t! If your data is of any value you should be transactional, if your data is of no value why are you even storing it?

Yes, Servoy will migrate automatically from any SQL database to any other. It’ll show warnings if you are on a non transactional backend, but hey you WILL be warned if you aren’t! If your data is of any value you should be transactional, if your data is of no value why are you even storing it?

Um, Jan, that doesn’t really answer my questions.

I’m not saying that Servoy is failing me in any way whatsoever; it’s been outstanding thus far. I’m just trying to understand how to get things done.

  1. I’m currently using a servoy repository in ASA on my local machine. I’ve moved the solution db to a remote server (Mac OS 10.3.5 Server running MySQL Max 4.0.20) with no problems. On that remote server, I’ve also created an empty database called “servoy_repository”. When I try to repoint the server connection for the repository to that database, though, I get the “must support transactions” error. Problem is, I can only see where to set inno db on the TABLE level. Is there a way to tell Servoy to create the NEW tables as inno db? Otherwise, I’d apparently have to build the repository tables in SQL manually, rather than letting Servoy do it for me, right? I’m sure we’re missing a setting or something somewhere.

  2. From our (somewhat limited) reading, it seems that inno db tables should be used sparingly, but your post implies we should use them for everything. Isn’t there a downside for performance?

  3. if we have some MySQL tables that support transactions, and some MySQL that don’t, will Servoy create new tables in other databases OF BOTH TYPES, or will it default, as it is doing now, to non-transactional tables?

TIA

just set the default table type property of mysql to INNO_DB (instead of MYISAM)
Then also the tables of servoy will be INNO_DB. I work all the time in that mode.

I really don’t know how much peformance it cost if you use inno_db instead of myisam. You should test this youreself.

OK, I’m pretty much convinced that the INNO DB format is the way to go. I’ve done some more reading, in addition to the great advice in this thread, and found that the dire warnings about performance in MySQL’s documentation appears to be a little CYA for MySQL’s former insistence that transactions weren’t important, back when MySQL didn’t support it.

Anyhow, I want to set the default table type, but try as I might I can’t find where and how to set that on Mac OSX. Can anyone hold my hand a little longer and get me through this last challenge? :wink:

TIA

on windows i need to modify the ‘my.ini’ file and add this property:

default-table-type=InnoDB

under the

[mysqld]

section

i don’t know exactly what youre properties file is (my.cnf or someting?)

OK. We’ve got that change. All new tables added to MySQL are InnoDB. Tested adding a table via phpmyadmin and also adding table through Servoy.

Now how do I move the repository to that server? If I try to just change the server config in preferences, I still get the “must support transactions” error.

For that matter, will just changing the named connection do it, or do I need to manually create the repository tables?

Do use the latest mysql driver!
remove the one (mysql.jar) from the driver dir.

Then only a repository_server connections to a mysql db should be nesessary to let servoy generate the repository tables when restarted.