Friday, June 10, 2011
Consider the following problem: We have a web app which can send messages between the users that are connected to it. A user can send a message to any number of users. The implementation is simple: When a user sends a message: The message is saved in the database Cache value is inserted for each recipient. The saved value is a time stamp which indicates when the user last received a message. ...
Wednesday, February 3, 2010
In one bright day, our integration tests in the build server started to fail randomly. Each test that failed showed this message: ORA-02049: timeout: distributed transaction waiting for lock These were integration tests on our database (Oracle database). Each of these tests had opened a distributed transaction and rolled it back to prevent changes in the database (Using the System.Transactions.TransactionScope). Each time we ran them, different tests had failed. The strangest thing was that newer tests we wrote, which used nHibernate transaction instead of a distributed transaction passed successfully. A couple of days later, the...
Friday, June 5, 2009
In my previous post I overviewed some important issues concerning st_geometry. You saw all kind of cool things you can do in simple sql queries. In order to use these queries you need to do some additional configurations to your database after you install sde. In here you can find instructions of how to do this. Example of Net configuration of st_geometry in linux: listener.ora: LSNR_MYDB =
Tuesday, May 26, 2009
So, how does st_geometry works? St_geometry is a user defined type of the Oracle database. A user defined type in Oracle is like a class definition in .Net. It allows you to create a type with properties and methods. It also supports inheritance, which in st_geometry is used to define an object hierarchy: As you can see from the diagram, st_geometry is infect an abstract class. Which means that in order to create an “instance” of the class you need to use one of the inheritors. St_geometry’s user defined type is defined inside...
Friday, May 15, 2009
In the last couple of months we have been using the new st_geometry type of the ArcSDE geodatabase. St_geometry allows us to use simple queries in order to retrieve and manipulate geographic layers.
1: select * from buildings b 2: where sde.st_intersects(b.shape,st_point('POINT (35.122 32.999)',1) = 1;
This query will return all the buildings that intersects the point (35.122,32.999).
St_geometry is available from version 9.2 of ArcSDE (ESRI recommends to use st_geometry from service pack 4).
More information on st_geometry is found here and here.
In my next posts I will describe this feature, how to use it, how...
Sunday, July 20, 2008
Two weeks ago (9/7/2008) we organized a dot net day in our company. In this day me, Shani and Doron lectured about basic usage of dot net. The lectures were : Conventions and Db guidelines - which I presented Cool Tools for productive programming - by Shani Introduction to Enterprise Library - by Shani TDD - by Doron As you can see I lectured about conventions and db guidelines. So as promised, attached to this post, are the presentation and the code samples. In order to run the code you must install Odp.Net 11g. Have a great day!
Thursday, June 19, 2008
A long time ago I presented a problem : How can you migrate from Oracle 9i with SDE 9.1 to Oracle 10g with SDE 9.2. After a long time I have found a solution. This solution was suggested to me by Tom Brown from ESRI. In his visit in Israel Shani and I had a rare chance to meet him and ask him a couple of questions. This was one of them. And now, I will present the solution : In order to perform the migration you need to follow these steps : Definitions : Source : Oracle...
Friday, May 25, 2007
I would like to present a problem I had when it was decided that our GIS application needed a new version of the geographic database. Let me explain : Our geographic database includes two components : Oracle database : version 9i. ESRI's SDE component : version 9.1. We decided that it was time to use the new versions of these components (Oracle 10g,SDE 9.2) so we can use their new features. We had no experience doing these sort pf thing, so I was assigned (As the team's applicative DBA) to find a way to do this properly, without...