Hi, I’ve got several questions related to OmniBase usage:
1) File locking on Windows
When I open a database session and process a transaction and then I try to connect new user, OODBStreamLockedNotification is raised. OmniBase then wants a confirmation of "File can not be read because it is locked. Do you want to try again ?". What is the best default answer? True causes long delay before the connection of new user. If false is chosen, fileIOError should be raised but nothing happens and new connection works well.
2) Object sharing between transactions
If I’m not wrong, in case I want to modify a database object, I have to use transaction with explicit access to database object from the root. So If I want use the same object in two or more independent transactions, I cannot identify the object by its direct reference but I have to use something like primary key or oid, right? How to make it more comfortable? Is a way how to identify and use database object without access from root and searching in collections?
3) Index updating
For example I have a collection of events an index by date of event. Then I modify an event that was not found by this index (I have no direct iterator). Do I have to find this event in date index manually, remove it and then add it again? Is there another way how access to index record directly?
Thank you
-- Pavel
On 11/3/05, Pavel Krivanek <squeak1@continentalbrno.cz > wrote:
Hi, I've got several questions related to OmniBase usage:
- File locking on Windows
When I open a database session and process a transaction and then I try to connect new user, OODBStreamLockedNotification is raised. OmniBase then wants a confirmation of "File can not be read because it is locked. Do you want to try again ?". What is the best default answer? True causes long delay before the connection of new user. If false is chosen, fileIOError should be raised but nothing happens and new connection works well.
IIRC, the netstyle guys were running into this issue.. what did you guys end up doing with it?
2) Object sharing between transactions
If I'm not wrong, in case I want to modify a database object, I have to use transaction with explicit access to database object from the root. So If I want use the same object in two or more independent transactions, I cannot identify the object by its direct reference but I have to use something like primary key or oid, right? How to make it more comfortable? Is a way how to identify and use database object without access from root and searching in collections?
We definitely need to get that OmniSupport code out there.. aside from the connection pool, we also have "persistent references", which are proxies to persistent objects that work across transactions. I've added an OmniSupport package to SqueakSource, but haven't added any code to it -- the newest version I can see is in the netstyle repo; I expect it's OK for public consumption, but I'd rather they published it themselves. Lukas, I've added you as a developer so feel free to do so if everything's in order..
3) Index updating
For example I have a collection of events an index by date of event. Then I modify an event that was not found by this index (I have no direct iterator). Do I have to find this event in date index manually, remove it and then add it again? Is there another way how access to index record directly?
If you are using any of the basic indices in OmniBase you will need to be sure to maintain them somehow (just as you would with, say, a Dictionary). Of course, you can have some sort of framework for automatically updating indices on data changes, though OmniBase itself doesn't include this.
Andrew
On 11/3/05, Andrew Catton andrew@smallthought.com wrote:
We definitely need to get that OmniSupport code out there.. aside from the connection pool, we also have "persistent references", which are proxies to persistent objects that work across transactions. I've added an OmniSupport package to SqueakSource, but haven't added any code to it -- the newest version I can see is in the netstyle repo; I expect it's OK for public consumption, but I'd rather they published it themselves.
One thing that needs to be done before it is available for public consumption is probably a bit of cleaning up and some minor documentation. Even I - user of OmniBase for 4 years - had trouble getting started with the current package...
One thing that needs to be done before it is available for public consumption is probably a bit of cleaning up and some minor documentation. Even I - user of OmniBase for 4 years - had trouble getting started with the current package...
Yeah, the package is definitely not an easy thing to use and understand, you need to some thing about the internals of OmniBase in order to be able to use it.
The hardest thing is that there are no examples ... so you have to figure out the use of the library by yourself. Maybe we (Avi? Andrew? Julian? Adrian?) could write a small tutorial somewhere ...
Lukas
PS: Ok, I stop writing mails now, and have a look at the library ;-)
-- Lukas Renggli http://www.lukas-renggli.ch
- File locking on Windows
When I open a database session and process a transaction and then I try to connect new user, OODBStreamLockedNotification is raised. OmniBase then wants a confirmation of "File can not be read because it is locked. Do you want to try again ?". What is the best default answer? True causes long delay before the connection of new user. If false is chosen, fileIOError should be raised but nothing happens and new connection works well.
IIRC, the netstyle guys were running into this issue.. what did you guys end up doing with it?
Mhh, I don't think we were running into exactly that issue ... Philippe was the only one using Windows for development, maybe he knows?
- Object sharing between transactions
If I'm not wrong, in case I want to modify a database object, I have to use transaction with explicit access to database object from the root. So If I want use the same object in two or more independent transactions, I cannot identify the object by its direct reference but I have to use something like primary key or oid, right? How to make it more comfortable? Is a way how to identify and use database object without access from root and searching in collections?
We definitely need to get that OmniSupport code out there.. aside from the connection pool, we also have "persistent references", which are proxies to persistent objects that work across transactions. I've added an OmniSupport package to SqueakSource, but haven't added any code to it -- the newest version I can see is in the netstyle repo; I expect it's OK for public consumption, but I'd rather they published it themselves. Lukas, I've added you as a developer so feel free to do so if everything's in order..
Ok thanks, I will have a look at it and publish the code. We made some experimental changes to different parts ... so I will have to see what version I am going to publish.
- Index updating
For example I have a collection of events an index by date of event. Then I modify an event that was not found by this index (I have no direct iterator). Do I have to find this event in date index manually, remove it and then add it again? Is there another way how access to index record directly?
If you are using any of the basic indices in OmniBase you will need to be sure to maintain them somehow (just as you would with, say, a Dictionary). Of course, you can have some sort of framework for automatically updating indices on data changes, though OmniBase itself doesn't include this.
There is a nice indexing framework in OmniSupport ...
Lukas
-- Lukas Renggli http://www.lukas-renggli.ch
Thank you for your replies. I’m glad that things are moving forward.
-- Pavel
- File locking on Windows
When I open a database session and process a transaction and then I try to connect new user, OODBStreamLockedNotification is raised. OmniBase then wants a confirmation of "File can not be read because it is locked. Do you want to try again ?". What is the best default answer? True causes long delay before the connection of new user. If false is chosen, fileIOError should be raised but nothing happens and new connection works well.
IIRC, the netstyle guys were running into this issue.. what did you guys end up doing with it?
Mhh, I don't think we were running into exactly that issue ... Philippe was the only one using Windows for development, maybe he knows?
- Object sharing between transactions
If I'm not wrong, in case I want to modify a database object, I have to use transaction with explicit access to database object from the root. So If I want use the same object in two or more independent transactions, I cannot identify the object by its direct reference but I have to use something like primary key or oid, right? How to make it more comfortable? Is a way how to identify and use database object without access from root and searching in collections?
We definitely need to get that OmniSupport code out there.. aside from the connection pool, we also have "persistent references", which are proxies to persistent objects that work across transactions. I've added an OmniSupport package to SqueakSource, but haven't added any code to it -- the newest version I can see is in the netstyle repo; I expect it's OK for public consumption, but I'd rather they published it themselves. Lukas, I've added you as a developer so feel free to do so if everything's in order..
Ok thanks, I will have a look at it and publish the code. We made some experimental changes to different parts ... so I will have to see what version I am going to publish.
- Index updating
For example I have a collection of events an index by date of event. Then I modify an event that was not found by this index (I have no direct iterator). Do I have to find this event in date index manually, remove it and then add it again? Is there another way how access to index record directly?
If you are using any of the basic indices in OmniBase you will need to be sure to maintain them somehow (just as you would with, say, a Dictionary). Of course, you can have some sort of framework for automatically updating indices on data changes, though OmniBase itself doesn't include this.
There is a nice indexing framework in OmniSupport ...
Lukas
Okay, I published the latest code (I had to prune the comments from the version-ancestry because it contained confidential data) to the SqueakSource repository Andrew created:
MCHttpRepository location: 'http://kilana.unibe.ch:8888/OmniSupport' user: '' password: ''
The package requires Seaside (it provides a database-aware subclass to WASession, if you don't want to load Seaside simply create a class with that name to be able to load the package), the BTree package and OmniBase from SqueakMap (it contains some overrides to that package). I hope I got rid of all other dependencies ...
And to advertise Magritte, I also have a package that makes Magritte work nicely together with OmniBase, such as detecting conflicts when editing the same data, etc. Magritte could also help with the indexing, but this is not done right now ;-)
Lukas
-- Lukas Renggli http://www.lukas-renggli.ch
It's amazing! Thank you for sharing that.
-- Pavel
Okay, I published the latest code (I had to prune the comments from the version-ancestry because it contained confidential data) to the SqueakSource repository Andrew created:
MCHttpRepository location: 'http://kilana.unibe.ch:8888/OmniSupport' user: '' password: ''
The package requires Seaside (it provides a database-aware subclass to WASession, if you don't want to load Seaside simply create a class with that name to be able to load the package), the BTree package and OmniBase from SqueakMap (it contains some overrides to that package). I hope I got rid of all other dependencies ...
And to advertise Magritte, I also have a package that makes Magritte work nicely together with OmniBase, such as detecting conflicts when editing the same data, etc. Magritte could also help with the indexing, but this is not done right now ;-)
Lukas
-- Lukas Renggli http://www.lukas-renggli.ch
I loaded the lr.100 version but when I run the tests all them has faliures or errors. Is that ok? I'm runnig it in Windows XP.
regatrds,
Sebastián
-----Mensaje original----- De: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org] En nombre de Lukas Renggli Enviado el: Jueves, 03 de Noviembre de 2005 13:36 Para: The general-purpose Squeak developers list Asunto: Re: OmniBase questions
Okay, I published the latest code (I had to prune the comments from the version-ancestry because it contained confidential data) to the SqueakSource repository Andrew created:
MCHttpRepository location: 'http://kilana.unibe.ch:8888/OmniSupport' user: '' password: ''
The package requires Seaside (it provides a database-aware subclass to WASession, if you don't want to load Seaside simply create a class with that name to be able to load the package), the BTree package and OmniBase from SqueakMap (it contains some overrides to that package). I hope I got rid of all other dependencies ...
And to advertise Magritte, I also have a package that makes Magritte work nicely together with OmniBase, such as detecting conflicts when editing the same data, etc. Magritte could also help with the indexing, but this is not done right now ;-)
Lukas
-- Lukas Renggli http://www.lukas-renggli.ch
On 11/3/05, Lukas Renggli renggli@gmail.com wrote:
If you are using any of the basic indices in OmniBase you will need to
be
sure to maintain them somehow (just as you would with, say, a
Dictionary).
Of course, you can have some sort of framework for automatically
updating
indices on data changes, though OmniBase itself doesn't include this.
There is a nice indexing framework in OmniSupport ...
Aha.. couldn't remember if that was part of OmniSupport or if we'd left it in the proprietary code.. Good to hear..
Hi there,
there is any news regarding to File loking issue (at least in windows OS)?
I have a headless seaside application that gets stuck sometmes because of it. What should be made to get rid of that dialog?
thanks,
Sebastián Sastre
mailto:ssastre@seaswork.com.ar ssastre@seaswork.com.ar Seaswork Special Software Solutions www.seaswork.com.ar http://www.seaswork.com.ar/
Este mensaje y sus adjuntos son confidenciales y de uso exclusivo para el usuario a quien esta dirigido. Puede contener información amparada por el secreto profesional. Si Ud. no es el destinatario especificado no debe copiar, enviar o utilizar ninguna parte del mismo y/o de sus adjuntos por ningún medio tecnológico. Las opiniones vertidas son responsabilidad del autor y no son emitidas ni avaladas por SEASWORK a menos que se indique claramente lo contrario y que la identidad y autoridad del autor, para comprometer a nuestra empresa, puedan ser verificados. No se garantiza la integridad de los mensajes enviados por e-mail ni que los mismos sean enviados en termino, o que no contengan errores o virus. El emisor no aceptara responsabilidad por los errores, modificaciones u omisiones que resulten en el mensaje, bajo la hipótesis de que pudo ser modificado.
_____
De: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org] En nombre de Andrew Catton Enviado el: Jueves, 03 de Noviembre de 2005 07:19 Para: The general-purpose Squeak developers list Asunto: Re: OmniBase questions
On 11/3/05, Pavel Krivanek <squeak1@continentalbrno.cz mailto:squeak1@continentalbrno.cz > wrote:
Hi, I've got several questions related to OmniBase usage:
1) File locking on Windows
When I open a database session and process a transaction and then I try to connect new user, OODBStreamLockedNotification is raised. OmniBase then wants a confirmation of "File can not be read because it is locked. Do you want to try again ?". What is the best default answer? True causes long delay before the connection of new user. If false is chosen, fileIOError should be raised but nothing happens and new connection works well.
IIRC, the netstyle guys were running into this issue.. what did you guys end up doing with it?
2) Object sharing between transactions
If I'm not wrong, in case I want to modify a database object, I have to use transaction with explicit access to database object from the root. So If I want use the same object in two or more independent transactions, I cannot identify the object by its direct reference but I have to use something like primary key or oid, right? How to make it more comfortable? Is a way how to identify and use database object without access from root and searching in collections?
We definitely need to get that OmniSupport code out there.. aside from the connection pool, we also have "persistent references", which are proxies to persistent objects that work across transactions. I've added an OmniSupport package to SqueakSource, but haven't added any code to it -- the newest version I can see is in the netstyle repo; I expect it's OK for public consumption, but I'd rather they published it themselves. Lukas, I've added you as a developer so feel free to do so if everything's in order..
3) Index updating
For example I have a collection of events an index by date of event. Then I modify an event that was not found by this index (I have no direct iterator). Do I have to find this event in date index manually, remove it and then add it again? Is there another way how access to index record directly?
If you are using any of the basic indices in OmniBase you will need to be sure to maintain them somehow (just as you would with, say, a Dictionary). Of course, you can have some sort of framework for automatically updating indices on data changes, though OmniBase itself doesn't include this.
Andrew
squeak-dev@lists.squeakfoundation.org