<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Wow. This is a bit beyond my current competence. I am afraid that
the only way how to check it is to try it. :) <br>
</p>
<p>If you can build midPoint from sources, could you just switch the
scroll mode to TYPE_SCROLL_SENSITIVE and try that? I could write a
special test to do that but ... :) hard to find the time.<br>
</p>
<pre class="moz-signature" cols="72">Pavol Mederly
Software developer
evolveum.com
</pre>
<div class="moz-cite-prefix">On 07.02.2018 14:41, Arnošt Starosta -
AMI Praha a.s. wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAGPA3FLXhwAUxMqyy+G7cpeqH6FegEDKZZdVjqDECM9sDZBv2w@mail.gmail.com">
<div dir="ltr">That might be the root of the problem!
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>The <tt>searchObjectsIterative</tt> method starts a
search operation, and each object - as soon as it's
returned from the repository - is handled by the <tt>resultHandler</tt>.
(Using ScrollableResults - as can be seen <a
href="https://github.com/Evolveum/midpoint/blob/42a1a66e93347d8c8b30624a574e7dfaf3743e88/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/ObjectRetriever.java#L680"
target="_blank" moz-do-not-send="true">here</a>.)<br>
</p>
</div>
</blockquote>
<div>where 'here' is </div>
<div><br>
</div>
<div>ScrollableResults results =
rQuery.scroll(ScrollMode.FORWARD_ONLY);<br>
</div>
<div><br>
</div>
<div>The jdbc spec says about TYPE_FORWARD_ONLY</div>
<div><br>
</div>
<div>"The rows contained in the result set depend on how the
underlying database
materializes the results. That is, it contains the rows
that satisfy the query at
either the time the query is executed or as the rows are
retrieved"</div>
<div><br>
</div>
<div>If we wanted to see the changes, we would have to use
TYPE_SCROLL_SENSITIVE.</div>
<div><br>
</div>
<div>What I don't understand is how this plays together with
transaction isolation settings. Does specifying ResultSet
type override them or is it the other way around? No time
to read the whole spec :/</div>
<div><br>
</div>
<div>arnost</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>I do not know how this works internally in hibernate,
JDBC driver and DBMS itself. But I suppose that if
there's any caching/chunking/prefetching there, it
does not gather all objects before processing them.</p>
<p>Anyway, I think we can implement the OID processing.
(But it's not me who decides about the budgets :))<br>
</p>
<span class="gmail-">
<pre class="gmail-m_-2852671089402895732moz-signature" cols="72">Pavol Mederly
Software developer
<a href="http://evolveum.com" target="_blank" moz-do-not-send="true">evolveum.com</a>
</pre>
</span>
<div>
<div class="gmail-h5">
<div
class="gmail-m_-2852671089402895732moz-cite-prefix">On
07.02.2018 13:45, Arnošt Starosta - AMI Praha a.s.
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Pavol,
<div><br>
</div>
<div>that unintended workaround saved my life
for the moment .)<br>
<div><br>
</div>
<div>Not sure if "fetches objects
one-after-another" makes the picture clear.
As i understand it the default reading
workflow goes in a single query - all
objects with full details in a single
query/result set that is processed one by
one by the handlers. Don't know how fetching
rows from the result set works.</div>
<div><br>
</div>
<div>Tweaking the transaction isolation did
not really help, even with default set to
'read committed'. Thats why i think the
object 'fetching' happens in larger chunks
and may not be affected by weaker
transaction isolation. Or maybe i just
misconfigured.</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">Working with oids in
iterative tasks would be great! You want the
worker threads to process 'that object' not
'this chunk of data'.</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">The jira is already
there - <a
href="https://jira.evolveum.com/browse/MID-4414"
target="_blank" moz-do-not-send="true">https://jira.evolveum.com/<wbr>browse/MID-4414</a></div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">arnost</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2018-02-07 12:17
GMT+01:00 Pavol Mederly <span dir="ltr"><<a
href="mailto:mederly@evolveum.com"
target="_blank" moz-do-not-send="true">mederly@evolveum.com</a>></span>:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Hello Arnošt,</p>
<p>this is a good observation. <br>
</p>
<p>To be honest, iterative search by
paging was meant as a workaround for
databases that do not support search
with subsequent modify operations on
the returned objects. But, as we see
from your message, it can be used to
avoid these problems as well :)</p>
<p>Just a slight correction: <br>
</p>
<p><span
class="gmail-m_-2852671089402895732gmail-">
</span></p>
<blockquote type="cite">Midpoint in
default configuration recomputes
objects by first retrieving them ALL
from repository, then passing each
object to a worker thread.</blockquote>
This is not quite true. MidPoint
fetches objects one-after-another, and
just after fetching each one from the
repository it passes the object to a
worker thread (or processes it
directly if there are no worker
threads defined). However, because of
quite strong transaction isolation
setting (serializable) the DBMS
ensures that changes that occur on
objects after the transaction started
(i.e. after the search was started)
are not reflected in their values. <br>
<p>I can imagine an option that would
make this more optimized. E.g. by
retrieving just a list of OIDs and
reading each object just before its
processing. If you have a second of
free time, you could create a jira
for this.<br>
</p>
<p>Moreover, in 3.8 we loose
transaction isolation a bit, from
serializable to repeatable_read. But
I think this will not change this
behavior.</p>
<pre class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586moz-signature" cols="72">Pavol Mederly
Software developer
<a href="http://evolveum.com" target="_blank" moz-do-not-send="true">evolveum.com</a>
</pre>
<div>
<div
class="gmail-m_-2852671089402895732gmail-h5">
<div
class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586moz-cite-prefix">On
29.01.2018 13:22, Arnošt
Starosta - AMI Praha a.s. wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div
class="gmail-m_-2852671089402895732gmail-h5">
<div dir="ltr">
<div><b>Problem : </b></div>
<div><br>
</div>
<div>Midpoint in default
configuration recomputes
objects by first retrieving
them ALL from repository,
then passing each object to
a worker thread. If the
object was updated meanwhile
(e.g. live-synced or updated
from gui) before it is
recomputed by the worker
thread, this update can be
overwritten by the object
version retrieved when the
recompute task started. It
happened on my deployment
several times.</div>
<div><br>
</div>
<div><b
style="background-color:transparent;font-size:10pt">Is
your deployment affected?
:</b></div>
<div><br>
</div>
<div>Hard to say, i don't see
any relevant log message to
check. I had to check by
debugging the running
recompute task and verifying
that
SqlRepositoryServiceImpl.searc<wbr>hObjectsIterative
calls
ObjectRetriever.searchObjectsI<wbr>terativeByPaging
(ok) and not
ObjectRetriever.searchObjectsI<wbr>terativeAttempt
(can loose updates).</div>
<div><br>
</div>
<div>Deployments with MySQL or
H2 backend should be ok with
default configuration (check
sources
SqlRepositoryConfiguration.com<wbr>puteDefaultIterativeSearchPara<wbr>meters).
Did not verify the runtime.</div>
<div><br>
</div>
<div><b>Solution:</b></div>
<div><br>
</div>
<div>Configure <font
face="courier new,
monospace">iterativeSearchByPag<wbr>ing</font> and <font
face="courier new,
monospace">iterativeSearchByPagin<wbr>gBatchSize</font> in
config.xml <font
face="courier new,
monospace">midpoint/repository</font><wbr> element.
Don't know if all backends
support this setting but
postgres (which i use) does.</div>
<div><br>
</div>
<div>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><configuration></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> <midpoint></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> <repository></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> …</span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> <iterativeSearchByP<wbr>aging>true</iterativeSearchByP<wbr>aging></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> <iterativeSearchByPagingBatchS<wbr>ize>17</iterativeSearchByPagin<wbr>gBatchSize></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> …</span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </repository></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </midpoint></span></p>
<p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:"Courier New";color:rgb(51,51,51);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></configuration></span></p>
</div>
<div><br>
</div>
<div>After setting these
parameters the objects to
recompute are read in
'pages' and fed to worker
threads until the request
queue between the reader
thread and worker threads is
full, then the reader is
blocked. The size of the
queue is hardcoded as 2 *
number-of-worker-threads.</div>
<div><br>
</div>
<div>By setting the <span>iterativeSearchByPagingBat<wbr>chSize</span><span
style="font-size:13.3333px;background-color:transparent"> you can still
loose updates, but the
time window when this can
happen shrinks from
number-of-objects to
max(page size,
2*num-of-worker-threads).
Without much thought i set
the page size to (</span><span
style="font-size:13.3333px;background-color:transparent">2 *
number-of-worker-threads)
+ 1.</span></div>
<div><br>
</div>
<div>good luck</div>
<div>arnost</div>
<div><br>
</div>
-- <br>
<div
class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<table
style="font-family:Verdana,Arial,Helvetica,sans-serif;border-collapse:collapse;padding:0px;margin:0px;border-width:0px;border-style:solid;width:482px">
<tbody>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;width:160px;vertical-align:bottom;padding:0px;border:0px
solid gray">
<p><span
style="font-size:14px;font-weight:bold">Arnošt
Starosta</span><br>
solution
architect<br>
<br>
gsm: <a
href="tel:+420%20603%20794%20932"
value="+420603794932" target="_blank" moz-do-not-send="true">[+420] 603
794 932</a><br>
e-mail: <a
href="mailto:arnost.starosta@ami.cz"
target="_blank" moz-do-not-send="true">arnost.starosta@ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;vertical-align:bottom;padding:0px;width:123px;border:0px
solid gray">
<p>AMI Praha
a.s.<br>
Pláničkova 11<br>
162 00 Praha 6<br>
tel.: <a
href="tel:+420%20274%20783%20239"
value="+420274783239" target="_blank" moz-do-not-send="true">[+420] 274
783 239</a><br>
web: <a
href="http://www.ami.cz/"
target="_blank" moz-do-not-send="true">www.ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;margin:8px;width:116px;border:0px
solid gray">
<p><img
src="http://www.ami.cz/images/podpis/ami_logo.gif"
alt="AMI Praha
a.s."
style="border:
0px;"
moz-do-not-send="true"></p>
</td>
</tr>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td colspan="7"
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;width:480px;border:0px
solid gray"><br>
<a
href="http://www.ami.cz/reseni-a-sluzby/bezpecnost-dat/identity-management"
target="_blank" moz-do-not-send="true"><img
src="http://www.ami.cz/images/podpis/AMI-podpis-IdM_1.png"
alt="AMI Praha
a.s."
style="border:
0px; width:
480px; height:
82px;"
moz-do-not-send="true"></a></td>
</tr>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td colspan="7"
style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:11px;padding:0px;border:0px
solid gray"><br>
Textem tohoto
e-mailu
podepisující
neslibuje
uzavřít ani
neuzavírá za
společnost AMI
Praha a.s.<br>
jakoukoliv
smlouvu. Každá
smlouva, pokud
bude uzavřena,
musí mít
výhradně
písemnou
formu.<br>
<br>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset
class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586mimeAttachmentHeader"></fieldset>
<br>
</div>
</div>
<pre>______________________________<wbr>_________________
midPoint mailing list
<a class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com" target="_blank" moz-do-not-send="true">midPoint@lists.evolveum.com</a>
<a class="gmail-m_-2852671089402895732gmail-m_-4624831061758144586moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank" moz-do-not-send="true">http://lists.evolveum.com/mail<wbr>man/listinfo/midpoint</a>
</pre>
</blockquote>
<br>
</div>
<br>
______________________________<wbr>_________________<br>
midPoint mailing list<br>
<a
href="mailto:midPoint@lists.evolveum.com"
target="_blank" moz-do-not-send="true">midPoint@lists.evolveum.com</a><br>
<a
href="http://lists.evolveum.com/mailman/listinfo/midpoint"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://lists.evolveum.com/mail<wbr>man/listinfo/midpoint</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div
class="gmail-m_-2852671089402895732gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<table
style="font-family:Verdana,Arial,Helvetica,sans-serif;border-collapse:collapse;padding:0px;margin:0px;border-width:0px;border-style:solid;width:482px">
<tbody>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;width:160px;vertical-align:bottom;padding:0px;border:0px
solid gray">
<p><span
style="font-size:14px;font-weight:bold">Arnošt
Starosta</span><br>
solution architect<br>
<br>
gsm: <a
href="tel:+420%20603%20794%20932"
value="+420603794932"
target="_blank"
moz-do-not-send="true">[+420]
603 794 932</a><br>
e-mail: <a
href="mailto:arnost.starosta@ami.cz"
target="_blank"
moz-do-not-send="true">arnost.starosta@ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray
gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;vertical-align:bottom;padding:0px;width:123px;border:0px
solid gray">
<p>AMI Praha a.s.<br>
Pláničkova 11<br>
162 00 Praha 6<br>
tel.: <a
href="tel:+420%20274%20783%20239"
value="+420274783239"
target="_blank"
moz-do-not-send="true">[+420]
274 783 239</a><br>
web: <a
href="http://www.ami.cz/"
target="_blank"
moz-do-not-send="true">www.ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray
gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;margin:8px;width:116px;border:0px
solid gray">
<p><img
src="http://www.ami.cz/images/podpis/ami_logo.gif"
alt="AMI Praha a.s."
style="border: 0px;"
moz-do-not-send="true"></p>
</td>
</tr>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td colspan="7"
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;width:480px;border:0px
solid gray"><br>
<a
href="http://www.ami.cz/reseni-a-sluzby/bezpecnost-dat/identity-management"
target="_blank"
moz-do-not-send="true"><img
src="http://www.ami.cz/images/podpis/AMI-podpis-IdM_1.png" alt="AMI
Praha a.s."
style="border: 0px;
width: 480px; height:
82px;"
moz-do-not-send="true"></a></td>
</tr>
<tr
style="padding:0px;margin:0px;border:0px
solid gray">
<td colspan="7"
style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:11px;padding:0px;border:0px
solid gray"><br>
Textem tohoto e-mailu
podepisující neslibuje
uzavřít ani neuzavírá za
společnost AMI Praha a.s.<br>
jakoukoliv smlouvu. Každá
smlouva, pokud bude
uzavřena, musí mít výhradně
písemnou formu.<br>
<br>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset
class="gmail-m_-2852671089402895732mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
midPoint mailing list
<a class="gmail-m_-2852671089402895732moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com" target="_blank" moz-do-not-send="true">midPoint@lists.evolveum.com</a>
<a class="gmail-m_-2852671089402895732moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank" moz-do-not-send="true">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</a>
</pre>
</blockquote>
<br>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com"
moz-do-not-send="true">midPoint@lists.evolveum.com</a><br>
<a
href="http://lists.evolveum.com/mailman/listinfo/midpoint"
rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.evolveum.com/<wbr>mailman/listinfo/midpoint</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<table
style="font-family:Verdana,Arial,Helvetica,sans-serif;border-collapse:collapse;padding:0px;margin:0px;border-width:0px;border-style:solid;width:482px">
<tbody>
<tr style="padding:0px;margin:0px;border:0px solid
gray">
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;width:160px;vertical-align:bottom;padding:0px;border:0px
solid gray">
<p><span
style="font-size:14px;font-weight:bold">Arnošt
Starosta</span><br>
solution architect<br>
<br>
gsm: [+420] 603 794 932<br>
e-mail: <a
href="mailto:arnost.starosta@ami.cz"
target="_blank" moz-do-not-send="true">arnost.starosta@ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;vertical-align:bottom;padding:0px;width:123px;border:0px
solid gray">
<p>AMI Praha a.s.<br>
Pláničkova 11<br>
162 00 Praha 6<br>
tel.: [+420] 274 783 239<br>
web: <a href="http://www.ami.cz/"
target="_blank" moz-do-not-send="true">www.ami.cz</a></p>
</td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-width:0px
1px 0px
0px;border-style:solid;border-color:gray
rgb(204,204,204) gray gray;padding:0px"> </td>
<td
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px
solid gray"> </td>
<td
style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;margin:8px;width:116px;border:0px
solid gray">
<p><img
src="http://www.ami.cz/images/podpis/ami_logo.gif"
alt="AMI Praha a.s." style="border: 0px;"
moz-do-not-send="true"></p>
</td>
</tr>
<tr style="padding:0px;margin:0px;border:0px solid
gray">
<td colspan="7"
style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;width:480px;border:0px
solid gray"><br>
<a
href="http://www.ami.cz/reseni-a-sluzby/bezpecnost-dat/identity-management"
target="_blank" moz-do-not-send="true"><img
src="http://www.ami.cz/images/podpis/AMI-podpis-IdM_1.png" alt="AMI
Praha a.s." style="border: 0px; width:
480px; height: 82px;"
moz-do-not-send="true"></a></td>
</tr>
<tr style="padding:0px;margin:0px;border:0px solid
gray">
<td colspan="7"
style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:11px;padding:0px;border:0px
solid gray"><br>
Textem tohoto e-mailu podepisující neslibuje
uzavřít ani neuzavírá za společnost AMI Praha
a.s.<br>
jakoukoliv smlouvu. Každá smlouva, pokud bude
uzavřena, musí mít výhradně písemnou formu.<br>
<br>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
midPoint mailing list
<a class="moz-txt-link-abbreviated" href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a>
<a class="moz-txt-link-freetext" href="http://lists.evolveum.com/mailman/listinfo/midpoint">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
</blockquote>
<br>
</body>
</html>