Re: Virtualizace vyvojoveho prostredi

2010-12-21 Tema obsahu Pavel Nemec
Pridam trochu vlastnich zkusenosti k NX.
nx je to magie bash+ssh+X. Moje zkusenost je, ze je NX rychlejsi nez
samotne X pres ssh a dokonce simuuluje prijemnejsi odezvu nez ciste
ssh. O vnc ani nemluve.

Funguej velice dobre multiplatforme, takze jako klienta pouzivam Mac
OS X, Windows i Linux. Existuje proprietarni implementace, stejne jako
svobodna.

Setkal jsem se s problemy mapovani klavesnice, ale bylo to resitelne
pomoci modmap. Take jsem obcas musel restartovat nx server, protoze se
odmital klient pripojit, ale opet nic zavazneho.

Jinak ma s NX velmi dobre zkusenosti, samozrejme  nejlepsi je ze se
umi napojit na otevrenou nx session (bohuzel nikoliv bezici X
session).



-- Pavel


Re: Tlusty klient a hibernate

2010-09-27 Tema obsahu Pavel Nemec
Dik za odkazy,
na thick-client best preactices jsem narazil. Ale pro me pouziti mi
neprislo nic moc zajimaveho.
Patch na lazy loading mi prijde take dost nebezpecny. Navic jsem se
(nekd) docetl ze Gaving King tohle (lazy loading patch) dlouhodobe
odmita zaclenit, kvuli transakcim.

Kazdopadne prostredni clanek je docela zajimavy, spise ale z hlediska
tech hiearchickych eventu.

Nejvice se mi ale libilo reseni s Remote Lazy Loading [odkaz, ktery
jste zaslal minule
http://www.theserverside.com/news/1363571/Remote-Lazy-Loading-in-Hibernate].
To skutecne pekne resi jak session tak rmi. Bohuzel se mi zacina
prioritizovat pozadavek na to aby tlusty klient nebyl uplne tlusty ale
take trochu stand alone (tj aby mohl fungovat i bez serveru (tj. bez
session, db) takze nakonec zustanu u prekladu do klientskych objektu
:(


Dik za rady,
--Pavel




2010/9/20 Ondra Medek xmed...@gmail.com:
 Ted jsem nahodou narazil jeste na:

 http://community.jboss.org/wiki/BestPracticesforThick-ClientApplicationsienon-webapps

 kde jsou dva odkazy:
 http://in.relation.to/Bloggers/HibernateAndSwingDemoApp
 http://www.360works.com/articles/detail/56/

 2010/9/17 Ondra Medek xmed...@gmail.com:
 Transparentni reseni pro klienta je pomerne slozite, nezkousel jsem to, viz:

 http://h3t.sourceforge.net/
 http://community.jboss.org/wiki/RemoteLazyLoading
 http://www.theserverside.com/news/1363571/Remote-Lazy-Loading-in-Hibernate

 Ja to resim manualne - mam pro kazdou entitu statickou metodu, ktera
 dotaha, co je potreba. Zbyvajici kod na klientovi pak jen zavola tuto
 jednu metodu - tedy jen jeden radek kodu navic. Zaklad je toto:

 public static T extends BaseEntity T initEntity(T entity, GenericDaoT 
 dao) {
                if (Hibernate.isInitialized(entity)) {
                        return entity; // already initialized
                }
                return dao.getById(getIdDirect(entity));
 }

 public static Integer getIdDirect(BaseEntity entity) {
        if (entity instanceof HibernateProxy) {
                LazyInitializer lazyInitializer = ((HibernateProxy)
 entity).getHibernateLazyInitializer();
                if (lazyInitializer.isUninitialized()) {
                        return (Integer) lazyInitializer.getIdentifier();
                }
        }
        return entity.getId();
 }

 kde dao.getById(getIdDirect(entity)); je ziskani entity pres jeji ID.
 Tedy neni to pro kolekce, to jsem zatim nepotreboval. Spise se snazim
 klientovi vratit vse, co je potreba. Toto pouzivam zatim jen na
 zobrazeni tooltipu a podobnych mene podstatnych informaci. Pokud se
 entity meni, tak je myslim lepsi toho nacist vzdy co nejvice v jedne
 transakci. Mezi ruznymi transakcemi nekdo jiny muze data zmenit a z
 toho mohou byt problemy.

 2010/9/17 Pavel Nemec neme...@gmail.com:
 No ano, problem je lazy loading. Rad bych klienty odstinil od zpusobu
 persistence (je to mimo jine i pozadavek) a nechci tedy aby si museli
 dotahovat nejake kusy na zaklade vyjimky session is closed, nebo aby
 takovou vyjimku vubec museli chytat.

 O DTO a potazmo apache commons beanutils jsem nevedel, urcite na to
 mrknu. Mohlo by to pomoci pri reseni.

 Dik
 Pavel

 Dne 17. září 2010 13:10 Ondra Medek xmed...@gmail.com napsal(a):
 Ahoj,

 a kde je problem: lazy reference neni serializable nebo ti vadi, ze
 klient si pak nedokaze ty lazy reference sam dotahat? Oba pripady jdou
 resit. Pripadne pri prevadeni entit do DTO muze slouzit Apache commons
 beanutils - pak se to lehce zautomatizuje.
 --
 Ondra Medek




 2010/9/17 Pavel Nemec neme...@gmail.com:
 Zdravim konferencei.

 Mam takovy pekny zapeklity problem. Na serveru pouzivame jako backend
 sql+hibernate. Data cestuji pomoci jboss+rmi na tlusteho klienta. Tech
 je radove stovky a tak neni ani zdaleka problem ve vykonosti databaze
 nebo jboss serveru. Vse to funguje pomerne pekne.

 V soucasne chvili pracujeme na dalsi verzi a reviduji soucasne postupy.

 Muj problem je ze pokud objekt nactu z hibernate obsahuje spoustu
 proxy a lazy loaded pod-objektu (kolekci).  Zkousel jsem dohledat
 nejake doporucene postupy jak s tlustym klientem pracovat s hibernate,
 ale nenalezl jsem nic uzitecneho.

 Nevidim cestu jak poslat objekty obsahujici lazy reference na klienta
 (pres rmi) a jedinou cestu jak z toho vidim prekladat do klientskych
 obrazu techto objektu. To sebou nese samozrejme preklad a dva typy
 objektu.

 Na druhou stranu to nenuti klienta resit cokoliv s hibernate.
 Premyslel jsem take osekat Ukladane objekty a vse nahravat pomoci
 EAGER. Ale bojim se ze ani to neni cesta, protoze to Ukladane objekty
 prilis svaze.

 Rad bych si usetril praci. A tak hledam reference na to jak to delaji
 ostatni, pripadne cemu se rovnou vyhnout.

 Dik,
 Pavel






 --
 Ondra Medek




 --
 Ondra Medek



Re: Tlusty klient a hibernate

2010-09-27 Tema obsahu Pavel Nemec
Dne 21. září 2010 11:37 Vaclav Stumbauer stum...@gmail.com napsal(a):
 Tez zdravim,

 treba Vam k necemu bude jak to mame my:

 pouzivame stejny mechanismus jako vy - business na serveru, hibernate pro
 persistenci.
 Standalone klient u nas slouzi pro nastavovani systemu a evidenci dat.

Jakym zpusobem prenesete session na klienta? Pokud vim neni
serializovatelna pres rmi?


 Domenu prenasime na klienta tak jak je, zadny preklad nedelame.
 Klientsky kod na hibernate zavisly neni, ale hibernati liby jsou v nem kvuli
 proxynam atd pribaleny.
 To muze nekoho drazdit, ale osobne to silne preferuju ve srovnani s nejakymi
 DTO atp.
 Navic v dobe kdy domena se stava stale vice zavisla na vsemoznych ne nutne
 vyznamove crossaplikacnich anotacich to uz v podstate neni argument.

To beru. Nicmene nase rozhrani ma byt backend nezavisle. Ale tohle
uz vyresene mame.


 Zadnou doinicializaci z klienta nedelame, CRUD volani ze standalone klienta
 vedou na predem danou inicializaci
 specifickou pro standalone klienta, v businessu se tato nevola.
 (fetch joiny pro listingy a Hibernate.initialize pro detaily).

nenarazili jste na to ze by jste diky


--Pavel


Tlusty klient a hibernate

2010-09-17 Tema obsahu Pavel Nemec
Zdravim konferencei.

Mam takovy pekny zapeklity problem. Na serveru pouzivame jako backend
sql+hibernate. Data cestuji pomoci jboss+rmi na tlusteho klienta. Tech
je radove stovky a tak neni ani zdaleka problem ve vykonosti databaze
nebo jboss serveru. Vse to funguje pomerne pekne.

V soucasne chvili pracujeme na dalsi verzi a reviduji soucasne postupy.

Muj problem je ze pokud objekt nactu z hibernate obsahuje spoustu
proxy a lazy loaded pod-objektu (kolekci).  Zkousel jsem dohledat
nejake doporucene postupy jak s tlustym klientem pracovat s hibernate,
ale nenalezl jsem nic uzitecneho.

Nevidim cestu jak poslat objekty obsahujici lazy reference na klienta
(pres rmi) a jedinou cestu jak z toho vidim prekladat do klientskych
obrazu techto objektu. To sebou nese samozrejme preklad a dva typy
objektu.

Na druhou stranu to nenuti klienta resit cokoliv s hibernate.
Premyslel jsem take osekat Ukladane objekty a vse nahravat pomoci
EAGER. Ale bojim se ze ani to neni cesta, protoze to Ukladane objekty
prilis svaze.

Rad bych si usetril praci. A tak hledam reference na to jak to delaji
ostatni, pripadne cemu se rovnou vyhnout.

Dik,
Pavel


rychlost instanceof x interface x key/ID

2010-07-27 Tema obsahu Pavel Nemec
Dobry den,
resim takovy maly problem toho co je lepsi pouzivat  pro rozliseni
typu objektu.

Ja jsem zastance pouzivat interface a nechat compilator/runtime aby si
vybral, kterou metodu zavola. Muj oponent pochazi vice z Ccka a je mu
blizsi pouzivat klice, pripadne instanceof.

Ja jsem mel vzdy za to ze instanceof je velmi pomale a nedoporucuje
se, nicmene jsem se docetl, ze to jiz davno neplati.

Udelal jsem si maly test, kdy zjistuji zda je objekt daneho typu na
zaklade volani
instanceof
interface - nezjistuji, pouze volam interface metodu
na zaklade objekt.getID()  + pretypovani.

Myslel jsem ze interface bude s prehledem nejrychlejsi, nicmene tomu
odpovida jen maly pocet volani (volam v cyklu a zjistuji jestli objekt
v listu je daneho typu)

pro 20 000 polozekinstanceof: 2 item took 25milsec, and result is
0 (should be 0)
interface: 2 item took 4milsec, and result is 0 (should be 0)
id:   2 item took 23milsec, and result is 0 (should be 0)

pro vysi pocet pak rychlost interface jiz kleas a napriklad pro 20M
instanceof: 2000 item took 284milsec, and result is 0 (should be 0)
interface: 2000 item took 380milsec, and result is 0 (should be 0)
id:   2000 item took 188milsec, and result is 0 (should be 0)


Zdrojak je nejednodusi mozny, viz: http://pastebin.ca/1909107

je tohle znama vec, a je tedy skutecne jedno zda(co se tyce rychlosti)
pouziji instance of misto interface?


Diky,
Pavel


Re: Hesla - kontrola sily

2010-06-15 Tema obsahu Pavel Nemec
Dobry den,
muj oblibeny program KisKis (gpl java) pouziva cracklib. Pomoci neho
pak umi krom sily hesla provest test na slovnikovy utok. Umi pouzit
jakykoliv externi cracklib slovnik.

Pokud tedy nenajdete lepsi reseni muzete se zkusit kouknout na
implementaci v KisKis
kiskis.sourceforge.net/

HIH

-- Pavel

2010/6/15, Radovana Straube radovana_stra...@yahoo.com:
 Dobry den,

 existuje nejaka Java kniznica, kde sa konfigurovat sila hesiel? Napriklad
 minimalna dlzka, pocet velkych alebo malych pismien, cislic, zakaz dvoch
 rovnakych znakov za sebou, zakaz ciselnej postupnosti ... Pre rozne role
 uzivatelov potrebujem nastavit odlisnu silu (password strength). Moje
 googlovanie mi bohuzial nepomohlo.
 Pouzivam Spring Security. Dakujem.

 Radovana Straube






Re: Balikovanie java aplikacii na linuxe

2009-10-22 Tema obsahu Pavel Nemec
Dne 19. října 2009 15:16 Podlesak Kamil kamil.podle...@ips-ag.net napsal(a):
 Zdravim,

  Zajimava diskuse. Vcelku vsechno dulezite jiz bylo receno, ale jednu 
 poznamku bych pridal: toto neplati ani ve svete C(++)!
  Respektive, v podstate to plati ve svete Linuxu pouzivaneho typickym 
 zpusobem, tj. bez komercnich aplikaci.
  Zrovna tento mesic se ale stalo, ze IBM Lotus Notes prestaly fungovat s 
 novou verzi GTK knihovny (2.18). Balickovaci system s takovou variantou 
 opravdu nepocita, takze je nutne si to vyresit rucne (nastesti staci knihovny 
 nakopirovat do /opt/ibm/lotus/notes

Tohle neni uplne presne. Komercni aplikace napriklad skype, ktery je
distribuovan pomoci balickovaciho systemu (deb nebo rpm) si s tim
samozrejme poradi. Vetsina komercnich aplikaci ale pouziva svuj
instalator, ktery ale s balickovacim systemem nepracuje a
nezaregistruje si zavislostino a pak to dopadne jako ve vasem
pripade.


Re: Balikovanie java aplikacii na linuxe

2009-10-22 Tema obsahu Pavel Nemec
Dne 22. října 2009 12:42 Podlesak Kamil kamil.podle...@ips-ag.net napsal(a):

  Naopak! Prave ze Lotus Notes jsou k dispozici jako rpm i deb a se spravnymi 
 zavislostmi. Prave proto doslo k zminovanemu problemu. Teoreticky by stacilo, 
 kdyby v zavislostech byla uvedena presna verze - jenomze bohuzel to by ve 
 stavajicich balickovacich systemach zanamenalo jen to, ze by se knihovna 
 nesmela updatovat.

Rouzmim, no to se take nekdy stane. Tezko rici kde je chyba zda spatny
update nebo spatne pripraveny jar. Obecne by pri update nemelo dojit k
rozbiti API, zejmena kdyz se instaluje oprava.  a jedna se zvyseni
verze...treba 1.3.1 na 1.3.2. Gtk2 je ale slozita zalezitost :(


  Z techto duvodu mivaji komercni aplikace vlastni instalator, nebo alespon 
 balicek bez zavislostmi - vsechny knihovny maji vlastni v takovych verzich, o 
 kterych vi ze funguji a jsou otestovane. Presne jako se to dela v Jave.

  Microsoft samozrejme na tento problem narazil uz hodne, hodne davno a jeho 
 reseni bylo jednim ze zakladnim pozadavku na .NET - takze umoznuje mit k 
 dispozici mnoho verzi jedne knihovny, pricemz ruzne aplikace pak pouzivaji 
 ruznou verzi.
  Dokazu si predstavit, ze by balickovaci systemy linuxovych dristribuci 
 podobnou funkcionalitu umoznily. Vyzadovalo by to ale nekolik nepeknych hacku 
 a tvrde by to narazilo na zastance tvrde linie (aneb kdyz je chyba v 
 aplikaci, ma se opravit aplikace, ne zavadet nejake obezlicky).

I v linuxu je mozne mit vice verzi jedne knihovny pohromade. Jde o to
jak se udela balicek. Pokud se knihovna (at uz .so nebo .jar) ulozi
pouze s verzi napr
/usr/lib64/libgpm.so.1.19.0

tak neni problem inastalovat vedle toho jinou verzi. Nicmene vetsinou
si knihovna nainstaluje take simlinky
/usr/lib64/libgpm.so - libgpm.so.1.19.0
/usr/lib64/libgpm.so.1 - libgpm.so.1.19.0

Program ktery knihovnu pouzije pak linkuje simlink
rpm -qR mc | grep gpm
libgpm.so.1()(64bit)
Vyhodou pak je, ze je mozne knihovnu gpm preinstalovat, pokud se jedna
o stejnou Major verzi.  a zaroven je v systemu omezeni ze mc je
zavisle na verzi 1 knihovny libgpm.  Pokud je knihovna neukaznena, tak
je nutne linkovat plnou verzi..

Stejne je to mozne udelat i v jave. Instalovat s konkretni verzi,
vyzadovat kokretni verzi a nepouzivat simlinky :)

P.N.


odstraneni DefaultDS - jboss

2009-08-28 Tema obsahu Pavel Nemec
Ahoj,
snazim se konfigurovat JBoss konfiguraci (ktera vychazi z prilozene
default) a snazim se mimo jine vyhnout se zavislosti na hsqldb. Ta
providuje datasource DefaultDS ktery se hojne pouziva.

Jako data source pouzivame c3p0 +mysql.
Problem je ze c3p0 se nastavuje jako mbean
(http://www.mchange.com/projects/c3p0/index.html#jboss-specific) ,
zatimco standardni datasource (hsqldb-ds, mysql-ds, nebo oracle-ds) se
konfiguruji jako datasources (napr
http://www.weiqigao.com/articles/jboss/oracle-ds.xml)

Bojuji ted s ejb-deployer ktery ma zavislost na
depends  
optional-attributee=DataSourcejboss.jca:service=DataSourceBinding,name=DefualtDS/depends

Za zadnou cenu mu nemohu vnutit svuj PooledDS (to je jndi name
c3p0), zkousel jsem take

dependsjboss:service=C3p0PooledDS/depends

Jedine co mne jeste napada, pridat do c3p0-ds.xml jeste sekci
datasources ale moc se mi to nelibi.

Nasel jsem spousta dokumentace o c3p0, ale nejrelevantnejsi se mi zda
http://www.jboss.org/community/wiki/ConfigJBossMQDB. Jejich postup mi
ale take nefungoval.

Neresil nekdo neco podobneho?

Predem dik,
Pavel


Re: Framework na spravu uzivatelov, zakaznikov atd ...

2009-07-14 Tema obsahu Pavel Nemec
 Povodne som sa chcel vybrat cestou vlastnych sql tabuliek, ale gui by som si
 musel napisat sam, co mi pride ako strata casu. Dalej ma napada ldap, ale o
 tom mam len zakladne povedomie, doposial som sa mu strasne rad vyhybal,
 neviem ake gui su k nemu dostupne a ako zlozito sa rozbehava server (linux).

Jednoduchy ldap na linuxu je docela trivka.  Např openSUSE na to má
klikátko a server běží za pět minut.
Front endů pro db je pár, webový např ldapadmin, nativní pak třeba
jxeplorer. Jsou to ale frontendy přímo pro db.
LDAP se pro autentizaci používá velice často a příkladů pro jakýkoliv
jazyk je všude mraky. Krom toho většinaí cms umí ldap používat právě
pro autentifikaci uživatelů.


Re: zamykani tabulek mysql+hibernate

2009-06-19 Tema obsahu Pavel Nemec
S Hibernate a vlastne i s Mysql spise zacinam, takze jsem si chtel nejdrive
provest nejake testy.
jeste bych upresnil, ze mi jde o konkurencni pristup do Mysql db kdy
jednotlivy konkurenti nepouzivaji stejny hibernate (tj defakto o pristup
primo do mysql);

Pouzil jsem dialekt mysql a i mysql innodb. A domnivam se ze by tedy melo
byt mozne zamknout bud radek nebo dokonce celou tabulku. Nepovedlo se mi ani
jedno.

session.load(class, ID, LockMode.Upgrade)
session.flush

probehlo bez vyjimky.
presto jsem byl pak schopen jit do mysql a rucne zmenit, smazat objekt, nebo
dokonce zamknout celou tabulku

session.createSQLQuerry(LOCK TABLE mytable WRITE);
session.flush();

probehla taktez bez vyjimky, nicmene db zamkla nebyla bylo mozne provadet
jakekoliv zmeny.


Rucni spusteni prikazu LOCK ... v mysql tabulku zamklo a vsechny session
pres hibernate se zastavily nez jsem opet tabulku odemkl. (To je chovani,
ktereho chci dosahnout)

Rikam si ze neco delam spatne, ale nemohu stale prijit co.



Dne 16. červen 2009 16:25 Lukas Barton lu...@cnawr.cz napsal(a):

 Jak presne Hibernate *zamyka *na MySQL najdes v danem dialectu.
 Jsou tam na to metody.
 Pricemz pesimisticke zamky (coz je i LockMode.UPGRADE) umi Hibernate jen
 pokud ho umi databaze (Typicky pres select ... for update).
 A vetsinou to zamkne jen jeden radek/stranku (zalezi na granuralite na dane
 DB a dane situaci - eskalace zamku).
 Zamknout celou tabulku je nutne pomoci SQL prikazu.

 Optimisticke zamykani umi Hibernate na kazde DB a dela ho automaticky pri
 kazdem updatu, vynutit je ho mozne pomoci LockMode.FORCE.

 Vice viz
 http://docs.jboss.org/hibernate/stable/core/reference/en/html/transactions-optimistic.html

   Lukas


 2009/6/16 Pavel Nemec neme...@gmail.com

 Dobry den,
 mam docela specificky problem.
 2 aplikacni servery (jboss) na kterych bezi hybernate a mysql. Mysql
 je nastavna tak ze se replikuje na obou serverech  a tvari se tedy
 jako jedna databaze.

 S databazi komunikuji vyhradne pres Hibernate. Jsem v situaci, kdy oba
 servery budou ve stejny cas pracovat nad jednou tabulkou. Hledal jsem
 moznost jakym zpusobem zamknout celou tabulku, s kterou potrebuji
 pracovat. Nicmene vse co jsem nasel, je
 session.get(Object, Lock.UPGRADE).
 S tim ze je u navodu vetsinou poznamka, ze to funguje urcite na
 Oraclu. Jestli tomu dobre rozumim, tak hibernate resi konkurencni
 pristup zejmena pri vicenasobnem pristupu prave pres hibernate
 (optimisticky pristup s verzovanim). Vypada to ze pristup pres primo
 pres mysql resit neumi (pesimisticky pristup a zamikani db).

 Muze mne nekdo prosim spravne nasmerovat?

 Predem dekuji,
 Pavel





Re: zamykani tabulek mysql+hibernate

2009-06-19 Tema obsahu Pavel Nemec
 Zmeny vraceny byt musi, flush jen posle prikazy do DB, commit se dela
 zvlast.
 Dokonce Hibernate muze posilat prikazy do DB v libovolnem poradi a nektere
 nemusi poslat vubec.

 Nejedete v autocommit modu? To by vysvetlovalo i ten problem s nezamykanim
 pri GETu.


Myslim si ze ano, ale kdyz jsem prohlizel konfiguraci hibernate v J2EE
aplikaci, tak jsem zadnou zminku o autocommitu nenasel.

Nacpal jsem tedy pres hibernate.propperties autocommit false

14:56:52,266 INFO  [Environment] loaded properties from resource
hibernate.properties: {hibernate.connection.autocommit=false,
hibernate.bytecode.use_reflection_optimizer=false}

Nicmene chovani je temer stejne.
Smazane objekty, na ktere pote zavolam flush se primo zapisi do db a
rollback s nimi nic neudela.
Nicmene objekty u kterych provedu zmenu hodnoty po te flush a po te
rollback si zachovaji puvodni hodnotu.

No, vyresim svuj problem pomoci zamikani tabulek a na tuto zahadu
prijdu pozdeji.


Re: zamikani tabulek mysql+hibernate

2009-06-19 Tema obsahu Pavel Nemec
Dne 19. červen 2009 16:25 Podlesak Kamil kamil.podle...@ips-ag.net napsal(a):
 Zdravim,

 Nejak jsem to v celem vlaknu nenasel, takze se explicitne zeptam:
 Jsou vsechny ty tabulky InnoDB? Pro jistotu to peclive overte, default je 
 MyISAM!

Jsemsi temer jist ze jsou default tj MyISAM.

Posilam kod, ktery pouzivam na testovani konkurencniho pristupu



 Kamil Podlesak



Session session = 
HibernateUtil.getSessionFactory().openSession();

Transaction tx = session.beginTransaction();
List  list = session.createQuery(from 
ServerMessage).list();

ServerMessage sm = (ServerMessage) list.get(0);
ServerMessage smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
session.flush();

// v tuto chvili zkontroluji db, a provedu zmenu na radce se stejnym id, uspesne
session.save(smLocked);
session.flush();
sm = (ServerMessage) list.get(1);
smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
logger.info(smazan objekt: +smLocked.getFlag());
session.delete(smLocked);
sm = (ServerMessage) list.get(2);
smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
logger.info(smazan objekt: +smLocked.getFlag());
session.delete(smLocked);
sm = (ServerMessage) list.get(3);
smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
logger.info(smazan objekt: +smLocked.getFlag());
session.delete(smLocked);

session.flush();

// v tuto chvili vsechny tri objekty jiz nejsou v db !

tx.rollback();
// rollback nevrati zmeny, v db jsou stale zmazany vsechny objekty

if(session.isOpen())session.close();


Re: zamikani tabulek mysql+hibernate

2009-06-19 Tema obsahu Pavel Nemec



On Jun 19, 2009, at 16:44, Lukas Barton lu...@cnawr.cz wrote:


MyISAM tabulky nejsou transakcni, coz je zdroj vasich problemu.


To je nakonec neresitelne. V projektu se pouziva nbd kvuli clusteru a  
innodb neni volba.




Jinak to zamykani objektu bych resil pres session.lock (kdyz uz tu  
instanci mate).


Nejsem si jisty, ze session.get udela to same na jiz jednou  
natazenou instanci.

Rozhodne je to necitelny zpusob, jak v tomto pripade zamykat.


Je to jen test funkcionality.
Dik za cenne rady.

Pavel


zamikani tabulek mysql+hibernate

2009-06-16 Tema obsahu Pavel Nemec
Dobry den,
mam docela specificky problem.
2 aplikacni servery (jboss) na kterych bezi hybernate a mysql. Mysql
je nastavna tak ze se replikuje na obou serverech  a tvari se tedy
jako jedna databaze.

S databazi komunikuji vyhradne pres Hibernate. Jsem v situaci, kdy oba
servery budou ve stejny cas pracovat nad jednou tabulkou. Hledal jsem
moznost jakym zpusobem zamknout celou tabulku, s kterou potrebuji
pracovat. Nicmene vse co jsem nasel, je
session.get(Object, Lock.UPGRADE).
S tim ze je u navodu vetsinou poznamka, ze to funguje urcite na
Oraclu. Jestli tomu dobre rozumim, tak hibernate resi konkurencni
pristup zejmena pri vicenasobnem pristupu prave pres hibernate
(optimisticky pristup s verzovanim). Vypada to ze pristup pres primo
pres mysql resit neumi (pesimisticky pristup a zamikani db).

Muze mne nekdo prosim spravne nasmerovat?

Predem dekuji,
Pavel


Re: prehravani mp3 streamy

2009-05-29 Tema obsahu Pavel Nemec
S JavouFX mam nulove zkusenosti, ale prijde mi to zatim moc syrove.
Nicmene i kdyz jsem pred tim prohledal konferenci, nakonec jsem
narazil na jeden starsi prispevek s odkazem na wikipedii.

http://en.wikipedia.org/wiki/Java_Media_Framework

Kdyz to nepujde, zkusim i FX :D

Dik,
P


Re: Deploy mbean na jboss - nejjednodussi priklad

2009-05-22 Tema obsahu Pavel Nemec
Dik za napad, opravdu to funguje, i kdyz jsem nakonec zvolil zpusob s
deskriptorem.

P.

2009/5/15 David Vana david.v...@ness.com:
 --- my.math.CalculatorManager.java:

 package my.math;

 import org.jboss.annotation.ejb.Management;

 @Management
 public interface CalculatorManager {
  public double sum(int x, int y);
 }

 --- my.math.CalculatorMBean.java:

 package my.math;

 import org.jboss.annotation.ejb.Service;

 @Service(objectName = jbia:service=calculatorManager)
 public class CalculatorMBean implements CalculatorManager {

  public double sum(int x, int y) {
  return x + y;
  }

 }

 ---

 Zabalit do JAR (zadny descriptor), nadeployovat a vyzkouset v konzoli: 
 http://localhost:8080/jmx-console/

 Zkouseno na JBoss AS 4.2.2.GA.


 __
 The information contained in this communication is intended solely for the 
 use of the individual or entity to whom it is addressed and others authorized 
 to receive it. It may contain confidential or legally privileged information. 
 If you are not the intended recipient you are hereby notified that any 
 disclosure, copying, distribution or taking any action in reliance on the 
 contents of this information is strictly prohibited and may be unlawful. If 
 you have received this communication in error, please notify us immediately 
 by forwarding this email to mailad...@ness.com and then delete it from your 
 system.

 Ness Technologies is neither liable for the proper and complete transmission 
 of the information contained in this communication nor for any delay in its 
 receipt.



Deploy mbean na jboss

2009-05-14 Tema obsahu Pavel Nemec
Dobry den,
zacinam s JBossem  a potrebuji trochu nakopnout.

Vytvoril jsem si aplikaci (server) podle navodu
http://www.onjava.com/pub/a/onjava/2005/02/23/remoting.html. Jedna se
o klient - server komunikaci.
Server je jedina trida - instance tridy mbean. Pokud ji inicializuji
klasicky tak vse funguje pefektne. Ja bych ale serverovou cas umistil
na jboss server.

vytvoril jsem tedy uplne jednoduchy jar soubor do ktere jsem zabalil
tridy a ten zkopiroval do $JBOSS/server/default/lib a vytvoril jsem
*xml soubor ktery jsem umistil do default/deploy.

jboss vypisuje
13:11:33,897 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

--- Packages waiting for a deployer ---
org.jboss.deployment.deploymenti...@7d440ed8 {
url=file:/opt/jboss-4.2.3.GA_jdk5/server/default/deploy/NotificationServer.xml
}
  deployer: null
  status: null
  state: INIT_WAITING_DEPLOYER
  watch: 
file:/opt/jboss-4.2.3.GA_jdk5/server/default/deploy/NotificationServer.xml
  altDD: null
  lastDeployed: 1242299493889
  lastModified: 1242299493000
  mbeans:

Obsah xml souboru je temer shodny s navodem na vise uvedene URL, pouze
jsem to obalil server/server


Prohlizel jsem ostatni xml soubory v adresari deploy a nemuzu prijit
na to co delam spatne.

Predem dekuji,
Pavel


Re: Deploy mbean na jboss

2009-05-14 Tema obsahu Pavel Nemec
Tak na tenhle kousek skladacky jsem take prisel.

V tutorialu, ktery jsem zminoval vise zamenili socket za Socket.
Ted to jiz pise uplne jinou hlasku.

15:05:40,469 ERROR [MainDeployer] Could not create deployment:
file:/opt/jboss-4.2.3.GA_jdk5/server/default/deploy/NotificationServer/META-INF/jboss-service.xml
org.jboss.deployment.DeploymentException: Trying to install an already
registered mbean: jboss.remoting:service=Connector,transport=socket

v conf/jboss-services.xml je samozrejme mbeana s timto jmenem
nadefinovana a zrejme je potreba (bez ni se nenahodi spousta sluzeb)

Nerozumim konceptu jmen mbean, myslel jsem ze udavaji java tridu,
ktera se bude inicializovat. nicmene zrejme asi ne.
Zde je popis:
http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.3.0.cp04/html/Server_Configuration_Guide/Using_JMX_as_a_Microkernel-JBoss_MBean_Services.html
ale moc jasne mi to neni :(


Re: java web start vs. Flex

2008-03-13 Tema obsahu Pavel Nemec
Dne Wednesday 12 March 2008 12:06:14 Ondřej Fafejta napsal(a):
 Je pravda, že s pluginem javy je to v 64bitovém linuxu úplně stejný
 problém :-).

Toto prestava nastesti byt pravda. V prvni rade existuje polofunkcni (ne 100% 
stabilni) verze od Black Down. V te 64b plugin je. IcedTea 64b plugin take 
podporuje. Bohuzel ne web start. Dalsi moznost je konqueror, ktery umi 
spouste applety pres apletviewer (takze funguje i na 64b). 

Pavel


-- 
Pavel Nemec
Software Engineer
-  
SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
Lihovarska 1060/12  tel:+420 284 028 981 
190 00 Praha 9  fax:+420 296 542 374   
Ceska republika http://www.suse.cz
-



signature.asc
Description: This is a digitally signed message part.


ztrafa focus linux

2007-06-07 Tema obsahu Pavel Nemec
Mam docela zapeklitý problém, 

mám testovací aplikaci
Frame, který na stisk klávesové zkratky otevře modální Dialog.
Celé to překriji Window.
Dialog se po stisknutí klávesy zavře ( a vrátí focus Frame)

Na Win a Mac se to chová dobře. Tedy pokud držím klávesu tak na mě vyskakuje 
Dialogové okno a zase se schovává.
Na Linuxu se ale po jedné či dvou iteracích focus prostě ztratí.

Nalezl jsem několik zmínek o problémech linux+focus.  Zvláštní také je že na 
některých verzích linuxu (stejná verze javy) to funguje.

Nemáte s podobným problémem někdo více zkušeností.

Předem díky,
Pavel

Test case 

import java.awt.*;
import java.awt.event.*;

class NLModal extends Dialog{
   NLModal (Frame f)
   {  
   super (f, modal, true);
   this.setBackground(Color.blue);
   this.setAlwaysOnTop(true);
  addWindowListener (new WindowAdapter (){  
public void windowClosing (WindowEvent e){  
  dispose ();
  }});
  addKeyListener (new KeyAdapter (){  
public void keyPressed (KeyEvent e){  
  System.out.println (modal:  + e.paramString ());
  dispose ();
  }});
  }
}


public class NLTest
{
   public static void main (String[] args){  
 Frame f = new Frame (NLTest);
  f.setBackground(Color.yellow);

  f.addWindowListener (new WindowAdapter (){  
public void windowClosing (WindowEvent e){  
  System.exit (0);
  }});
  f.addKeyListener (new KeyAdapter (){  
public void keyPressed (KeyEvent e){  
System.out.println (frame:  + e.paramString ());;
Dialog d = new NLModal ((Frame) e.getComponent ());
d.setBounds (50, 100, 600, 100);
d.show ();
  }});

  Dimension d = f.getToolkit ().getScreenSize ();

  f.setBounds (0, 0, 300, 25);
  f.show ();

  Window w = new Window (f);
  w.setBackground(Color.gray);
  w.setBounds (0, 50, 300, 200); // working
  //w.setBounds (0, 0, d.width, d.height-1); // working
  //w.setBounds (0, 0, d.width-1, d.height); // working
  //w.setBounds (0, 0, d.width, d.height);  // focus loss
  w.show ();

   }
}

-- 
Pavel Nemec
Software Engineer
-  
SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
Lihovarska 1060/12  tel:+420 284 028 981 
190 00 Praha 9  fax:+420 296 542 374   
Ceska republika http://www.suse.cz


signature.asc
Description: This is a digitally signed message part.


Re: ztrafa focus linux

2007-06-07 Tema obsahu Pavel Nemec
KDE, FVWM, MWM, GNOME,
vice jsem jich zatim otestovat nestihl (s touto podivnosti)

P.

On Thursday 07 June 2007 12:07:39 Lukas Zapletal wrote:
 Jaky pouzivate Window Manager?

 LZ

 7.6.07, Pavel Nemec [EMAIL PROTECTED]:
  Mam docela zapeklitý problém,
 
  mám testovací aplikaci
  Frame, který na stisk klávesové zkratky otevře modální Dialog.
  Celé to překriji Window.
  Dialog se po stisknutí klávesy zavře ( a vrátí focus Frame)
 
  Na Win a Mac se to chová dobře. Tedy pokud držím klávesu tak na mě
  vyskakuje Dialogové okno a zase se schovává.
  Na Linuxu se ale po jedné či dvou iteracích focus prostě ztratí.
 
  Nalezl jsem několik zmínek o problémech linux+focus.  Zvláštní také je že
  na některých verzích linuxu (stejná verze javy) to funguje.
 
  Nemáte s podobným problémem někdo více zkušeností.
 
  Předem díky,
  Pavel
 
  Test case
 
  import java.awt.*;
  import java.awt.event.*;
 
  class NLModal extends Dialog{
 NLModal (Frame f)
 {
 super (f, modal, true);
 this.setBackground(Color.blue);
 this.setAlwaysOnTop(true);
addWindowListener (new WindowAdapter (){
  public void windowClosing (WindowEvent e){
dispose ();
}});
addKeyListener (new KeyAdapter (){
  public void keyPressed (KeyEvent e){
System.out.println (modal:  + e.paramString ());
dispose ();
}});
}
  }
 
 
  public class NLTest
  {
 public static void main (String[] args){
   Frame f = new Frame (NLTest);
f.setBackground(Color.yellow);
 
f.addWindowListener (new WindowAdapter (){
  public void windowClosing (WindowEvent e){
System.exit (0);
}});
f.addKeyListener (new KeyAdapter (){
  public void keyPressed (KeyEvent e){
  System.out.println (frame:  + e.paramString ());;
  Dialog d = new NLModal ((Frame) e.getComponent ());
  d.setBounds (50, 100, 600, 100);
  d.show ();
}});
 
Dimension d = f.getToolkit ().getScreenSize ();
 
f.setBounds (0, 0, 300, 25);
f.show ();
 
Window w = new Window (f);
w.setBackground(Color.gray);
w.setBounds (0, 50, 300, 200); // working
//w.setBounds (0, 0, d.width, d.height-1); // working
//w.setBounds (0, 0, d.width-1, d.height); // working
//w.setBounds (0, 0, d.width, d.height);  // focus loss
w.show ();
 
 }
  }
 
  --
  Pavel Nemec
  Software Engineer
  -
  SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
  Lihovarska 1060/12  tel:+420 284 028 981
  190 00 Praha 9  fax:+420 296 542 374
  Ceska republika http://www.suse.cz



-- 
Pavel Nemec
Software Engineer
-  
SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
Lihovarska 1060/12  tel:+420 284 028 981 
190 00 Praha 9  fax:+420 296 542 374   
Ceska republika http://www.suse.cz


signature.asc
Description: This is a digitally signed message part.


Re: ztrafa focus linux

2007-06-07 Tema obsahu Pavel Nemec
Tak se zdá že opravdu nejsem první ani poslední kdo to kdy potkal :(

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4921738

On Thursday 07 June 2007 12:44:36 Pavel Nemec wrote:
 KDE, FVWM, MWM, GNOME,
 vice jsem jich zatim otestovat nestihl (s touto podivnosti)

 P.

 On Thursday 07 June 2007 12:07:39 Lukas Zapletal wrote:
  Jaky pouzivate Window Manager?
 
  LZ
 
  7.6.07, Pavel Nemec [EMAIL PROTECTED]:
   Mam docela zapeklitý problém,
  
   mám testovací aplikaci
   Frame, který na stisk klávesové zkratky otevře modální Dialog.
   Celé to překriji Window.
   Dialog se po stisknutí klávesy zavře ( a vrátí focus Frame)
  
   Na Win a Mac se to chová dobře. Tedy pokud držím klávesu tak na mě
   vyskakuje Dialogové okno a zase se schovává.
   Na Linuxu se ale po jedné či dvou iteracích focus prostě ztratí.
  
   Nalezl jsem několik zmínek o problémech linux+focus.  Zvláštní také je
   že na některých verzích linuxu (stejná verze javy) to funguje.
  
   Nemáte s podobným problémem někdo více zkušeností.
  
   Předem díky,
   Pavel
  
   Test case
  
   import java.awt.*;
   import java.awt.event.*;
  
   class NLModal extends Dialog{
  NLModal (Frame f)
  {
  super (f, modal, true);
  this.setBackground(Color.blue);
  this.setAlwaysOnTop(true);
 addWindowListener (new WindowAdapter (){
   public void windowClosing (WindowEvent e){
 dispose ();
 }});
 addKeyListener (new KeyAdapter (){
   public void keyPressed (KeyEvent e){
 System.out.println (modal:  + e.paramString ());
 dispose ();
 }});
 }
   }
  
  
   public class NLTest
   {
  public static void main (String[] args){
Frame f = new Frame (NLTest);
 f.setBackground(Color.yellow);
  
 f.addWindowListener (new WindowAdapter (){
   public void windowClosing (WindowEvent e){
 System.exit (0);
 }});
 f.addKeyListener (new KeyAdapter (){
   public void keyPressed (KeyEvent e){
   System.out.println (frame:  + e.paramString ());;
   Dialog d = new NLModal ((Frame) e.getComponent ());
   d.setBounds (50, 100, 600, 100);
   d.show ();
 }});
  
 Dimension d = f.getToolkit ().getScreenSize ();
  
 f.setBounds (0, 0, 300, 25);
 f.show ();
  
 Window w = new Window (f);
 w.setBackground(Color.gray);
 w.setBounds (0, 50, 300, 200); // working
 //w.setBounds (0, 0, d.width, d.height-1); // working
 //w.setBounds (0, 0, d.width-1, d.height); // working
 //w.setBounds (0, 0, d.width, d.height);  // focus loss
 w.show ();
  
  }
   }
  
   --
   Pavel Nemec
   Software Engineer
   -
   SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
   Lihovarska 1060/12  tel:+420 284 028 981
   190 00 Praha 9  fax:+420 296 542 374
   Ceska republika http://www.suse.cz



-- 
Pavel Nemec
Software Engineer
-  
SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
Lihovarska 1060/12  tel:+420 284 028 981 
190 00 Praha 9  fax:+420 296 542 374   
Ceska republika http://www.suse.cz


signature.asc
Description: This is a digitally signed message part.


databáze

2007-02-07 Tema obsahu Pavel Nemec
Dobrý den,
pro jeden svůj projekt bych potřeboval použít nějakou velice malou databáze. 
Databáze bude součástí programu a není podstatné aby byla rychlá, ale spíše 
aby byla malá (jak do velikosti v paměti, tak potřebná velikost na disku).
Našel jsem několik kandidátů (všechny pod GPL licencí) a všechny v jave.
HSQL
DB4o

Pokud mátě někdo zkušenosti s databázemi, prosím podělte se. (mám na mysli 
zkušenosti s malými embeded databázemi ;) )

Pavel


Re: databáze

2007-02-07 Tema obsahu Pavel Nemec
Dne Wednesday 07 February 2007 10:08 Ing. Jan Novotný napsal(a):
 Zdravím,

 já jsem několikrát používal Apache Derby
 http://db.apache.org/derby/ - tedy nyní Java DB
 http://developers.sun.com/prodtech/javadb/. Nevím kolik zabírá v

To vypadá velice dobře, už stahuji demo.

Všem děkuji za odpověď
Pavel


pgp0OCfSqS9av.pgp
Description: PGP signature


Re: databáze

2007-02-07 Tema obsahu Pavel Nemec

 Dobry den. Nedavno jsem take hledal neco podobneho a jediny nastroj,
 ktery by se mne libil a vyhovoval, byla databaze Stels Engine (
 http://www.csv-jdbc.com/stels_engine.htm ). Neni potreba spoustet
 serverovou cast, umi agregacni funkce, prevody datovych typu, nekolik
 matematickych funkci, proste to nejzakladnejsi...

Vypada to zajimave, ale pokud je k dispozici GPL reseni, ktere je navic 
zadarmo. 
Proc platit.


pgp4fhKTDGGnk.pgp
Description: PGP signature