<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>LINUXEXPRES - Diskuzní fórum</title>
<link>http://www.linuxexpres.cz/</link>
<description>RSS komentářů ke článkům</description>
<item>
<title>Re:Re:Re:Re:Re:Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[opravujem, ked som napisal 3 updaty, myslel som 3 selecty a potom update-y...]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 23 Jun 2009 09:23:18 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6746</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6746</guid>
</item>
<item>
<title>Re:Re:Re:Re:Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[...problem v casovej znacke podla mna je...skutocne odporucam napisat si tabulku na papier a odskusat si aspon 3 updaty v tej istej milisekunde a zistite, ze vyhra posledny...pretoze verzia sa nezmeni...
...spoliehat sa na to, ze medzi 2 ma riadkami kodu, ktore mozu bezat paralelne sa zmeni timestamp, je vseobecne zly napad...aj ked to na 99,99% bude fungovat...
...hibernate a vsetky JPA kompatibilne persistance providery by toto vsetko pekne ohandlovali za vas, stacilo by dat do kazdej verzovanej entity jeden stlpec naviac a anotovat ho. A hibernate uz updaty generuje s kontrolou verzie a v pripade ze nic neupdatne vyhodi vynimku, ze nastal konflikt, ktoru si mozete osetrit ako chcete...]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 23 Jun 2009 09:12:53 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6745</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6745</guid>
</item>
<item>
<title>Re:Re:Re:Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Právě, že není problém ani při časové značce. I když se dva updaty sejdou ve stejné ms, tak je vše v pořádku, protože se odkazují na hodnotu z doby, kdy záznam přečetli. Jediná možnost by byla, že by přečtení záznamu a jeho změna byla v jedné mikrosekundě u obou modifikujících operací. Nicméně ani dva po sobě jdoucí SQL dotazy nejsou takto rychlé. 
U uložené procedury to nastat může a musíte si zde na to dát pozor.]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 23 Jun 2009 08:26:25 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6744</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6744</guid>
</item>
<item>
<title>Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[http://www.root.cz/clanky/transakce-a-izolace-transakci-v-databazich/
V tom clanku je v tom prikladu s race condition chyba. Nejlepsi zamykani z dostupnych DB ma ibm DB2 (predicate locking) a ani ta vas 'automaticky' neochrani jak se autor mylne domniva. Ja bych proto doporucoval studovat kvalitni literaturu a ne nejake blogy.
ad optimistic locking. Nejlepsi je pouzivat kombinaci ROWID (abychom radku nasli bez pristupu do indexu ktery muze byt zamceny jinou transakci) a nejakeho pocitadla, pripadne casovou znacku, ale pocitadlo je jak zde uz nekdo poznamenal lepsi. Pokud se o pocitadlo pro update/insert nestara databaze interne, tak je potreba pouzit pro jeho generaci alespon triger.
nicmene ja jsem mel na mysli jiny typ races a to jak mate napsane stored procedury.
Pro zacatek bych doporucoval se zamerit na zamykani v Oracle. Neni problem k teto DB sehnat kvalitni vyukove materialy a zamykaci model Oraclu je velice jednoduchy. Az pochopite to zamykani v Oracle, tak pak muzete studovat pokrocilejsi zamykaci pripadne lock avoidance techniky jako jsou treba predicate locking, cursor stability nebo MVCC.
Zalezi jen na vas jaky pristup zvolite.]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 23 Jun 2009 00:43:16 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6740</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6740</guid>
</item>
<item>
<title>Re:Re:Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[RE: ...proto, že to má stejnou funkčnost...
podla toho prikladu, co je vyssie, iba v pripade, ze tie SQL prikazy niesu urobene v priebehu 1 ms, pretoze ak su, tak potom T1 = now() a v tom pripade pri prvom update v podstate nezmenis verziu...
...ak nezmenis verziu pri kazdom update, tak verzovanie nieje spolahlive a pri najhorsom sa moze stat, ze nastane "posledny vyhrava" pripad...
...ak neveris tak si rozpis na papier do tabulky 3 updaty v tom istom case, ja si netrufam, lebo je uz 23:00 a chce sa mi strasne spat... :)
RE: http://blog.softeu.cz/winstrom-10-pod-poklickou/
pekne :)
zacinam tiez: http://antaran13.blogspot.com/]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 23:07:25 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6739</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6739</guid>
</item>
<item>
<title>Re:Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Ano používáme Hibernate. A používáme datum poslední změny proto, že to má stejnou funkčnost a navíc to nese informaci poslední změny.
Případně doporučuji přečíst si náš vývojařský blog: http://blog.softeu.cz/winstrom-10-pod-poklickou/]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 21:26:53 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6738</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6738</guid>
</item>
<item>
<title>WinStrom: Účetnictví pro Linux</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Je tam funkce pro automaticke vydani faktury nejakemu subjektu s danym casovym urcenim? (treba mesicni platba internetu etc.)]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 20:19:56 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6735</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6735</guid>
</item>
<item>
<title>Re:Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[...asi nepouzivate Hibernate/JPA, ten podporuje optimistic locking with versioning (optimisticke uzamykanie s verziami)...
nieje potrebne pouzivat ako verziu timestamp, zbytocne to zavadza...staci obycajne cislo...
select * from zaznam where id = 1;
(vrati zaznam: id=1, a='', verzia=1)
update zaznam set a = 'neco', verzia = verzia + 1 where id = 1 and verzia = 1;
(updatne 1 riadok, vrati 1, ok neni co riesit)
update zaznam set a = 'neco jineho', verzia = verzia + 1 where id = 1 and verzia = 1;
(updatne 0 riadkov, vrati 0, pretoze verzia je uz 2, treba riesit konflikt)
...inak tu zadarmo verziu by som mozno aj vyskusal, ale chybaju mi tam mzdy, aspon 12 :)]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 19:50:54 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6734</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6734</guid>
</item>
<item>
<title>Re:Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Tak musím sám sebe opravit: samozřejmě, že problém nenastane ani když provedou dvě aplikace změnu v jedné mikrosekundě. Podívejme se na problém více do hloubky.
Aplikace 1 načte data, že došlo ke změně v čase T1.
Aplikace 2 načte data, že došlo ke změně v čase T1.
Aplikace 1 provede změnu: 
update zaznam set a = 'neco', posledni_zmena = now() where id = 1 and posledni_zmena = T1;
Aplikace 2 provede změnu ve stejné mikrosekundě:
update zaznam set a = 'neco jineho', posledni_zmena = now() where id = 1 and posledni_zmena = T1;
Protože u prvního záznamu dojde ke změně data poslední změny, podmínka where u druhého dotazu selže a nezmění žádný záznam a uživatel je o tomto stavu informován.
Dokážu zmást i sám sebe :-)]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 18:00:58 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6733</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6733</guid>
</item>
<item>
<title>Re:je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Důkladně jsem to prostudoval a žádné "havo races" tam nejsou :-). Dokonce tam nejsou ani problémy se souběhem více operací.
Autoři ví jak fungují MVCC databáze a WinStrom je v síťových a víceuživatelských instalacích reálně používán. 
Pro neznalé - více informací lze nalézt http://www.root.cz/clanky/transakce-a-izolace-transakci-v-databazich/
Ono ani nejde tolik o MVCC jako obecně o jakýkoliv sdílený prostředek. Abychom nemuseli zamykat záznamy (Marta šla na oběd a už má čtyři hodiny otevřené výplaty a nikdo jiný tam nemůže) používá se "optimistické" zamykání. Tj. pokud dva uživatelé změní jeden záznam, dojde k chybě a uživatel, který změnu uložil jako poslední je na tento fakt upozorněn společně s nabídnutím seznamu změněných položek a musí změnu provést znovu (tj. vyhraje ten první). 
Toto nastává jen v případě, že záznam měníte. Při vkládání nového záznamu ke kolizi dojít nemůže a rozhodně se data po uložení nemohou ztratit. 
Čas poslední změny je určován s přesností na mikrosekundy (tj. jedna miliontina sekundy). Ano v případě, že dva uživatelé změní jeden záznam ve stejné mikrosekundě, může dojít k tomu, že uživatel nebude na kolizi upozorněn a vyhraje ten poslední.]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 16:11:21 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6732</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6732</guid>
</item>
<item>
<title>je to jen pro singleuser</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Zbezne jsem si to prohledl a maji tam havo races. Takze kdyz s tim bude pracovat vice nez jeden user soucasne tak se tam budou ztracet polozky, pokud se uzivatele trefi do stejneho time window.
Autorum bych doporucoval prostudovat si jak funguji MVCC databaze.]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 13:25:19 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6730</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6730</guid>
</item>
<item>
<title>Re:Re:Vzhled</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Opraveno, díky]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 11:49:45 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6728</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6728</guid>
</item>
<item>
<title>Re:Vzhled</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Správný odkaz je:
http://www.winstrom.cz/podpora/reseni/winstrom-je-pomaly/]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 07:46:41 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6727</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6727</guid>
</item>
<item>
<title>Vzhled</title>
<description>
&lt;p&gt;&lt;strong&gt;<![CDATA[Jsem štastným majitelem tohoto účetnictví a kudy chodím, tudy chválím. Jenom ten vzhled (zakrývání částí textu/číslic) ve formulářích je trochu pihou na kráse. Bohužel v článku uvedený odkaz na řešení je nefunkční - Stránka nenalezena.]]>&lt;/strong&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 22 Jun 2009 06:09:54 +0200</pubDate>
<link>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6725</link>
<guid>https://www.linuxexpres.cz/diskuse/diskuze-ke-clankum/vzhled#post6725</guid>
</item>
</channel>
</rss>