Persistent collections are a feature!

March 28th, 2008

Persistent collections are a feature!

Clonazepam
Purchase Naprosyn
Buy Gasex
Purchase Relafen
Purchase Purim
Purchase Maxaquin
Buy Arava
Order Requip
Crestor
Purchase Buspar
Buy Ismo
Order Himplasia
Purchase Cytotec
Order Meridia
Cheap Nonoxinol
Cheap Fioricet
Cheap Rogaine
Cheap Zelnorm
Cheap Styplon
Zyrtec
Purchase Mentax
Antabuse
Buy Percocet
Purchase Augmentin
Order Rimonabant
Buy Meridia
Premium Diet
Purchase Loprox
Cheap Darvocet
Buy Prometrium
Buy Acomplia
Imitrex
Order Triphala
Purchase Azulfidine
Purchase Viagra
Buy Differin
Order Famvir
Purchase Geriforte
Buy Protonix
Buy Depakote
Buy Viramune
Order Naprosyn
Capoten
Lamictal
Cheap Sorbitrate
Purchase Lortab
Buy Lisinopril
Purchase Diabecon
Cheap Lexapro
Cheap Diovan
Purchase Prometrium
Cheap Plan
Buy Prozac
Cheap Trazodone
Buy Menosan
Purchase Ephedrine
Bactroban
Purchase Sorbitrate
Purchase Neurontin
Purchase Avapro
Buy Parlodel
Cheap High
Buy Didrex
Order Copegus
Purchase Urispas
Order Chitosan
Order Trimox
Order Mobic
Buy Flonase
Purchase Lynoral
Purchase Karela
Order Capoten
Cheap Prinivil
Cheap Oxytrol
High Love
Cheap Vasodilan
Purchase Zyprexa
Order Relafen
Buy Aciphex
Order Adalat
Buy Diovan
Purchase Calan
Buy Mycelex-G
Nicotinell
Diakof
Viagra
Order Avandamet
Cheap Prilosec
Purchase Sustiva
Purchase Casodex
Cheap Levitra
Cheap Zanaflex
Order Cardizem
Buy Tulasi
Order Cialis
Cheap Diabecon
Purchase Sarafem
Cheap Cystone
Gasex
Cheap Detrol
Coreg
Clomid
Cheap Feldene
Didronel
Buy Himcocid
Order Cipro
Cheap Purinethol
Zyban
Purchase Tricor
Purchase Tenuate
Purchase Zovirax
Aldactone
Purchase Adipex
Cheap Femcare
Cheap Soma
Order Desyrel
Cheap Flonase
Purchase Proscar
Ordering Didrex
Buy Cyklokapron
Hytrin
Buy Seroquel
Buy Diarex
Buy Koflet
Order Aristocort
Purchase Darvocet
Hair Loss
Cheap Bactroban
Purchase Zantac
Order Atrovent
Purchase Clarinex
Order Lotensin
Ultimate Male
Rimonabant
Purchase Nimotop
Cheap Mentax
Purim
Purchase Miacalcin
Order Speman
Sumycin
Purchase Aceon
Order Myambutol
Cialis
Cheap Herbolax
Trandate
Order Lasuna
Buy Omnicef
Cheap Cardura
Cheap Celebrex
Order Plavix
Buy Zantac
Buy Levitra
Cheap Parlodel
Cordarone
Buy Sarafem
Cheap Cyklokapron
Order Elimite
Purchase Imdur
Order Parlodel
Buy Antabuse
Cheap Superman
Retin-A
Cheap Hytrin
Cheap Hyzaar
Cheap Sumycin
Purchase Plendil
Hyzaar
Cheap V-Gel
Prevacid
Order Elavil
Order Accutane
Buy Neurontin
Sustiva
Cheap Mentat
Cephalexin
Buy Bupropion
Cheap Avandia
Flovent
Female Sexual
Purchase Zebeta
Levaquin
Buspar
Buy Revia
Purchase Abana
Purchase Zyloprim
Norvasc
Cheap Casodex
Buy Amaryl
Purchase Stromectol
Ashwagandha
Buy Proventil
Augmentin
Buy Clomid
Cystone
Buy Bonnisan
Cheap Rimonabant
Cheap Coreg
Cheap Norco
Cheap Clarina
Buy Pravachol
Order Deltasone
Cipro
Cheap Maxaquin
Order Diflucan
Cheap Rhinocort
Buy Pilex
Zyloprim
Cheap Kytril
Cheap Isordil
Purinethol
Order Ophthacare
Order Nexium
Purchase Myambutol
Order Sinequan
Purchase Proventil
Buy Nirdosh
Order Leukeran
Cheap Urispas
Cheap Evista
Order Cytotec
Order Avapro
Purchase Procardia
Snoroff
Buy Rogaine
Cheap Trimox
Cheap Zyrtec
Cheap Diflucan
Buy Himcospaz
Cheap Monoket
Order Zyloprim
Purchase Herbolax
Adalat
Menosan
Purchase Mevacor
Cheap Aricept
Buy Evecare
Buy Sustiva
Buy Vytorin
Cheap Zocor
Atacand
Cheap Prevacid
Buy Evista
Order Lozol
Mental Booster
Zetia
Order StretchNil
Rythmol SR
Cheap Femara
Zimulti
Purchase Meridia
Buy Zocor
Cheap Phentermine
Virility Gum
Cheap Cymbalta
Order Propecia
Purchase Evista
Sorbitrate
Purchase Elimite
Cheap Plavix
Tramadol
Purchase Deltasone
Buy Buspar
Order CLA
Cheap Dilantin
Neurontin
Buy Norco
Purchase Loxitane
Human Growth
Speman
Percocet
Buy Naprosyn
Order Himcocid
Purchase Coreg
Buy Confido
Cheap Accutane
Buy Arimidex
Cheap Endep
Buy Eurax
Order Cordarone
Soma
Cheap Vytorin
Cheap Premarin
Famvir
Purchase Prilosec
Tentex Forte
Levlen
Purchase Clarina
Buy Cordarone
Rocaltrol
Lasuna
Buy Clonazepam
Buy Rumalaya
Purchase Lioresal
Fioricet
Purchase Capoten
Cheap Biaxin
Shallaki
Purchase Depakote
Arimidex
Purchase Zelnorm

Hibernate DetachedCriteria is not reusable

March 28th, 2008

Once you execute following code:

Criteria criteria = detachedCriteria
.getExecutableCriteria(session);

you cannot reause the detachedCriteria for creating another one executable criteria because they are connected together (e.g. setting projection or pagination for criteria modifies also detachedCriteria object).

You must do following workarounds:

criteria.setMaxResults(0);
criteria.setFirstResult(0);

detachedCriteria.setResultTransformer( Criteria.ROOT_ENTITY );
detachedCriteria.setProjection( null );

For more info see Hibernate forum -
http://forum.hibernate.org/viewtopic.php?t=939308

Suspending transaction by Spring must not work on JBoss 4.0.x

March 13th, 2008

If you don’t use only Spring APIs to manage transactions and connections you may exercise that transaction suspension does not work on JBoss 4.0.x.

For more information see:

Buy Motrin
Paxil
Phentermine 37.5
Zetia
Zoloft
Buy Celebrex
With low credit scores
Coreg
Credit reporting in
Buy Propecia
Amaryl
Credit plus score
Lowest apr credit cards
Free Cingular Ringtones
Instant free credit report
Linux VPN
Tramadol Hydrochloride
On credit scores
Buy Female Viagra
Advair Diskus
Propecia
Atarax
Zyrtec
On credit scores
Anonymous surfing
Ultram
VPN tunneling
Avodart
Explaining credit report scores
Lorazepam
Check credit scores
Ativan
Correcting credit reports
Card credit debt divorce
Buy Zetia
Buy Singulair
Beacon score credit report
Internet privacy
Cozaar
Online Viagra Jelly
Credit report mortgage leads
Cheap Viagra Jelly
Prozac
Eminem Ringtones
Cheap Imitrex
Open VPN
Install VPN
Seting up a VPN
Buy Cipro
Copy of credit report
Tylenol
Buy Premarin
Tamiflu
Sprint Ringtones
Your credit reports
Caller Ringtones
Online Tramadol
Norvasc
Butterfly Ringtones
Pravachol
Buy Singulair
Cheap Buspar
Flomax
Cheap Acomplia
Online Ultram
Didrex
Buy Avandia
Bontril
Remove credit card debt
Improve credit scores
Hydrocodone
Crestor
Zoloft
Prozac
Cheap Viagra Soft Cialis Soft
Propecia Canada
Cheap Hoodia

List of books/papers that I’ve read in 2008

January 16th, 2008

Oracle the same as Informix

March 22nd, 2007

I wrote about my problems with Informix. Now we are facing similar problem on Oracle. It results in deadlock. The SQLs are more complex, but core problem is still in full table scan on small data locking the whole table because of full table scan.
We have to find config setting to force Oracle to always use indexes. We know only hint, that increases chance of using indexes - ALTER SESSION SET OPTIMIZER_INDEX_COST_ADJ = 1.


Advice1: don’t use micro benchmark.

Advice2: Don’t slouch on deadlock, you should be able to live them. It’s compromise for gained performance.

Solution: If an index exists on the foreign key column of the child table, no DML locks, other than a lock over the rows being modified, are required.

If the index is not created, a share lock is taken out on the child table for the duration of the transaction.

The referential integrity validation could take several minutes or even hours to resolve. The share lock over the child table will allow other users to simultaneously read from the table, while restricting certain types of modification. The share lock over the table can actually block other normal, everyday modification of other rows in that table.

See for further info: http://www.thescripts.com/forum/thread64998.html, http://www.akadia.com/services/ora_locks_survival_guide.html

Moving to Systinet

March 2nd, 2007

I’ve changed job. I work in Hewlett-Packard, former Systinet, since 1st January.

It could be quite interesting to develop SOA Governance software. I mean it will be great experience.

Persistent collections are a feature!

January 31st, 2007

See Persistent collections are a feature! on Hibernate team member blog.

Exceptions when it’s useful to map collection:

  • objects in collection are owned by the parent
  • you need merge feature for collection (see Session#merge())
  • you can (have to) map the collection with lazy=”false”

If those three conditions are met all at once then I will recomend to map that collection.

List of books/papers that I’ve read in 2007

January 25th, 2007

Informix giving me lessons from database implementation

September 27th, 2006

I wrote about my problems with Informix IDS several days ago.

That problem is sovled now:

“The number of rows in the table is small enough to cause the database server to perform a sequential scan, and an index scan on a table with lock mode configured to row.”

You can setup IDS to use indexes all time which gets you off my problem. See Informix suport page for further info.

The infromation about locking previous and next record in index was outdated. Informix does not make this since v7.

I will bethink pretty much locking problems with other databases.
We still have problems with deleting data from tables using SQL.

Solution: OPTCOMPIND parameter

OPTCOMPIND is an environment variable or a parameter in the Informix configuration file. The optimizer uses its value to determine its choice of the data access method. It has one of three values (0, 1 and 2), which indicate the following:

  • If the value is set to 0, then the optimizer chooses index scans over table scans if appropriate indexes exist, without even considering the estimated costs.
  • If the value is set to 1, then the optimizer behaves as it does for value 0 if the transaction isolation mode is not Repeatable Read. If the transaction isolation mode is Repeatable Read, then the optimizer would base its choice purely on the estimated costs.
  • If value is set to 2, the optimizer would uses estimated costs to determine an execution plan regardless of the transaction isolation mode.

You may either set OPTCOMPIND either as an environment variable or as a parameter in the configuration file, but setting it as a parameter will take precedence on execution.

Link: Tuning Informix SQL

Exercising Informix IDS and other RDBMS

September 21st, 2006

While trying to run our application with Informix IDS server I had to solve two problems:

  1. Cannot delete many rows from single table because of long running transaction error.
  2. Receive locking error during parallel batch processing on distinct data (ie. one table, distinct rows).

So I’ve read some manuals about Informix: Administrator’s Guide, Database Design and Implementation Guide, Guide to SQL - Syntax, Installation Guide for Microsoft Windows, JDBC Driver Programmer’s Guide and Informix Unleashed book. It took me 4 days to understand Informix specific issues :-) The database is quite complex and has many interesting features (eg. table inheritance, vritual processors, …).
The result is, that there is no good solution :-(

The “solution” is following:

  1. Drop all indexes, primary and foreing keys on such table, change table type to raw (without transaction log). Delete data. Recreate indexes, primary and foreing keys. (or delete data by chunks, use XPS server and operational table type). That’s quite clumsy isn’t it?
  2. Change default locking granurality for all table to row mode (default is page mode) and set sime timeout for waiting for exclusive lock (default is no wait). That doesn’t help to get rid of all locking errors, becaus Informix locks also previous and following record in all indexes over table…

I wrote a simple test to test locking problem on other databases we use (DB2 AS400, DB2 9.1, PostgreSQL, Oracle 10g, Firebird and MS SQL Server 2005).

The test simmulates parallel batch processing:

  • create connection 1 (session - we use Hibernate)
  • start transaction1
  • update some rows in tableA
  • create connection2
  • start transaction2
  • update some other rows in tableA
  • commit transaction2
  • commit transaction1

The result’s are:

  • Informix IDS - fails with default settings, second update tries to lock index records that are already locked by first update … this is more or less probable. Wait with my settings until transaction1 commits.
  • MS SQL Server 2005 - Wait until transaction1 commits, second update tries to lock page that is already locked by first update, which causes waiting. The documentation says that server chooses appropriate lock (db, table, page, row) but as I could see it does not. You can force MS SQL Server 2005 to use row lock. But only at pre statement basis and that’s not comfortable.
  • DB2 AS400, DB2 9.1, PostgreSQL, Oracle 10g and Firebird passed my test without waiting.

Now I’m little frustrated about what database to use for combined OLTP and batch processing thas are required by our application.