IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ...
-
Upload
trinhthuan -
Category
Documents
-
view
230 -
download
2
Transcript of IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ...
IBM Tivoli Directory Integrator5.2:C'8O
S152-0830-00
���
IBM Tivoli Directory Integrator5.2:C'8O
S152-0830-00
���
"b
Z9C>JO0d'VDz7.0,kDAZ 141 3D=< E, :yw;PD;cE"#
Z;f(2003 j 11 B)
C^)fJCZ IBM Tivoli Directory Integrator V5R2 0dyPDsL"Pfk^D,}GZBD^)fPmP5w#
© Copyright International Business Machines Corporation 2003. All rights reserved.
0T
>D5|,\m IBM® Tivoli® Directory Integrator yhDE"#
>iDA_
b>i<Z)Q-DA}6kE8O7DC'9CThFyZ IBM Tivoli Directory
Integrator Dbv=8#
vfo
kDA IBM Tivoli Directory Integrator bDhv47(D)vfoI\aTzPoz#
7(KyhDvfo.s,kN<Z_CJvfoD8>E"#
IBM Tivoli Directory Integrator bIBM Tivoli Directory Integrator bPDvfoP:
6IBM Tivoli Directory Integrator 5.2:Tv7
|,XZ IBM Tivoli Directory Integrator 5.2 DnBE"#
6IBM Tivoli Directory Integrator 5.2:kE8O7
IBM Tivoli Directory Integrator 5.2 Dr%LLMi\#
6IBM Tivoli Directory Integrator 5.2:\m18O7
|,20 IBM Tivoli Directory Integrator Dj{E"#|,ST0D IBM Tivoli
Directory Integrator f>(FDE"#|,PX IBM Tivoli Directory Integrator
DdCU>G<&\DE"#
6IBM Tivoli Directory Integrator 5.2:C'8O7
|,XZgN9C IBM Tivoli Directory Integrator 5.2 $_DE"#|,9C
IBM Tivoli Directory Integrator $_(ibmditk)hFbv=8rS|nP
(ibmdisrv)KP$HvCDbv=8D8>E"#9a)XZSZ"EnT
00i0w._/B~&mLr1D4(M\mDE"#|,4(;%M5J
/V'0 IBM Tivoli Directory Integrator 5.2 D>}#
6IBM Tivoli Directory Integrator 5.2:N<8O7
|, IBM Tivoli Directory Integrator 5.2 i0w._Dwvi~(,Sw"B
~&mLr"bvw"e~HH)Dj8E"#
`XDvfo
BPvfoPa)Kk IBM Tivoli Directory Integrator `XDE":
v IBM Tivoli Directory Integrator 5.2 9C Sun Microsystems D JNDI M'z#kN
<;Z http://java.sun.com/products/jndi/1.2/javadoc/index.html D Sun Microsystems Web
>cOD Java™ Naming and Directory Interface™ 1.2.1 Specification TKbXZ JNDI
M'zDE"#
© Copyright IBM Corp. 2003 iii
v 0Tivoli m~b1a)KwVwyD Tivoli vfo,HgW$i"}]m"]>"l
$iM"</#0Tivoli m~b1IZ;Z http://www.ibm.com/software/tivoli/library/
D Web >cqC#
v Tivoli Software Glossary |,m`k Tivoli m~`XD<uuoD(e#Tivoli Software
G l o s s a r y ; P " o f , I S T i v o l i m ~ b W e b 3 f
http://www.ibm.com/software/tivoli/library/ s`D Tivoli glossary 4SqC#
Z_CJvfo
>z7DvfoIZ_qC,PIF2D5q=(Portable Document Format,PDF)r
,D>jGoT(Hypertext Markup Language,HTML)q=,r_b=Vq=<P;
b)vfoITS Tivoli m~b:http://www.ibm.com/software/tivoli/library qC#
*ZbPiRz7vfo,k%wCb3fs`D Product manuals 4S#;s,Z
Tivoli software information center 3fR="%wz7D{F#
E"4z7i/Z;p,dP|(TvD~"208O"C'8O"\m18O"R
gPX*D0,9|(*"_N<s+#
":*7#}7r! PDF q=Dvfo,k!q Adobe Acrobat0r!10Z(%w
D~->r!)DJO=Es!4!r#
(z&\
(z&\C4ozmeP2DC'(HgP/;crS&;QDC')I&9Cm~
z7#9C>z71,zIT9C(z<u}=M/@gf#20K>z7.s,z
9IT9C|L(x;Csj)4Yw<NC'gfODyP&\#
*5m~'V
Z*5 IBM Tivoli m~ support 4bvJb.0,kN< IBM System Management M
Tivoli software Web >c,>c;C:
http://www.ibm.com/software/sysmgmt/products/support/
g{z9h*d|oz,k9C6IBM m~'V8O7PhvD=(ZBP Web >c
*5m~'V:
http://techsupport.services.ibm.com/guides/handbook.html
C8Oa)TBE":
v qC'VD"aMJq*s
v g0EkMgSJ~X7,b)!vZzyZDzRrXx
v Z*5M''V0zXkU/D;5PE"
iv IBM Tivoli Directory Integrator 5.2:C'8O
?<
0T . . . . . . . . . . . . . . . . iii>iDA_ . . . . . . . . . . . . . . . iiivfo . . . . . . . . . . . . . . . . iii
IBM Tivoli Directory Integrator b . . . . . . iii`XDvfo . . . . . . . . . . . . . iiiZ_CJvfo . . . . . . . . . . . . iv
(z&\ . . . . . . . . . . . . . . . iv*5m~'V . . . . . . . . . . . . . . iv
Z 1 B ri . . . . . . . . . . . . . 1;cEn . . . . . . . . . . . . . . . . 1Lri~MSZ . . . . . . . . . . . . . 1
IBM Tivoli Directory Integrator0dC`-w1 . . 1IBM Tivoli Directory Integrator Server . . . . . 2
IBM API. . . . . . . . . . . . . . . . 2E>Ts . . . . . . . . . . . . . . . . 2
Z 2 B IBM Tivoli Directory IntegratorEn . . . . . . . . . . . . . . . . 3i0w._ . . . . . . . . . . . . . . . 3
i0w._w . . . . . . . . . . . . . 4Z IBM Tivoli Directory Integrator0dC`-w1–ibmditk Pt/i0w._ . . . . . . . . . 6SB~&mLrrE>t/i0w._ . . . . . 6CJi0w._PD,Sw . . . . . . . . . 6i0w._N}+] . . . . . . . . . . . 63d . . . . . . . . . . . . . . . . 8
,Sw . . . . . . . . . . . . . . . . 9,Sw#= . . . . . . . . . . . . . 11,SwgN2m}]($wu?)? . . . . . 11,Sw== . . . . . . . . . . . . . 11,Sw4, . . . . . . . . . . . . . 17
bvw . . . . . . . . . . . . . . . . 17V{`k*; . . . . . . . . . . . . . 18
4Su~ . . . . . . . . . . . . . . . 18r%4Su~ . . . . . . . . . . . . . 18_64Su~ . . . . . . . . . . . . . 19
B~&mLr . . . . . . . . . . . . . . 20t/B~&mLr . . . . . . . . . . . 21Event Ts . . . . . . . . . . . . . . 21B~&mLr Hook . . . . . . . . . . . 21B~&mLrYw3d . . . . . . . . . . 21u~ . . . . . . . . . . . . . . . . 22Yw . . . . . . . . . . . . . . . . 22tT/XT{F . . . . . . . . . . . . 23
E>`F . . . . . . . . . . . . . . . 23XFi0w._Dw . . . . . . . . . . 24N1h*E>`F . . . . . . . . . . . 24+E>`F/I=bv=8P . . . . . . . 24E>`FgN0l4P . . . . . . . . . . 25
E>`FDXFc . . . . . . . . . . . 26HO JavaScript V{. . . . . . . . . . . 27CJT:D Java ` . . . . . . . . . . . 29Z JavaScript P`FE> . . . . . . . . . 309C;P new java.* DoT`FE> . . . . . 30ZE>`FP9C~xF5 . . . . . . . . 30ZE>`FP9CUZ5 . . . . . . . . . 30ZE>`FP9C!c5 . . . . . . . . . 31>} . . . . . . . . . . . . . . . . 31
Hook. . . . . . . . . . . . . . . . . 31tCr{C Hook . . . . . . . . . . . 32Xh Hook . . . . . . . . . . . . . . 32ms Hook . . . . . . . . . . . . . . 32Hook Pm . . . . . . . . . . . . . . 33
Delta. . . . . . . . . . . . . . . . . 38(;tT . . . . . . . . . . . . . . 38Delta j> . . . . . . . . . . . . . . 39Delta MFc|D . . . . . . . . . . . 39Delta }L . . . . . . . . . . . . . . 40Delta Table a9 . . . . . . . . . . . . 40
53f" . . . . . . . . . . . . . . . 41C'XTf" . . . . . . . . . . . . . 41Delta f" . . . . . . . . . . . . . . 42lic/XBt/f" . . . . . . . . . . 42f"$'=( . . . . . . . . . . . . . 42XTf"=( . . . . . . . . . . . . . 44UserFunctions(53Ts)=( . . . . . . . 44
LP . . . . . . . . . . . . . . . . . 45tT3d . . . . . . . . . . . . . . . 45
Null P* . . . . . . . . . . . . . . 46Conn Ts . . . . . . . . . . . . . . 47
X*DdCM53Ts . . . . . . . . . . . 48gNXF_L} . . . . . . . . . . . . 49
lic/XBt/ . . . . . . . . . . . . 49#fMf"i0w._4,E" . . . . . . . 50^F . . . . . . . . . . . . . . . . 51XBt/,e . . . . . . . . . . . . . 56XBt/Yw . . . . . . . . . . . . . 56
wT . . . . . . . . . . . . . . . . . 59wwTLr . . . . . . . . . . . . . 59G<MwT . . . . . . . . . . . . . 59
dC . . . . . . . . . . . . . . . . . 61b?XT . . . . . . . . . . . . . . 61|,/{FUd . . . . . . . . . . . . 62
IBM Tivoli Directory Integrator 2+WSVc'V . . 629C SSL #$ IBM Tivoli Directory Integrator5.2 M~qw.dD,S(IBM Tivoli DirectoryIntegrator w*M'z) . . . . . . . . . 639C SSL #$M'zM IBM Tivoli DirectoryIntegrator 5.2 .dD,S(IBM Tivoli DirectoryIntegrator w*~qw) . . . . . . . . . 63
© Copyright IBM Corp. 2003 v
IBM Tivoli Directory Integrator M MicrosoftActive Directory SSL dC . . . . . . . . 649C IDS ~qwZ IBM Tivoli DirectoryIntegrator 5.2 i0w._Pq!2+D JDBC ,
S . . . . . . . . . . . . . . . . 669C NetDirect JDataConnect Z IBM TivoliDirectory Integrator 5.2 i0w._Pq!2+D
JDBC ,S . . . . . . . . . . . . . 69
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 . . . . . . . . . . . 719C0dC`-w1 . . . . . . . . . . . 71
PmX~ . . . . . . . . . . . . . . 72!n(X~ . . . . . . . . . . . . . 72|LX~ . . . . . . . . . . . . . . 73Zj8E"0Z.dF/ . . . . . . . . . 73wK%!q . . . . . . . . . . . . . 74E>`-w0Z . . . . . . . . . . . . 76
dC(Config) . . . . . . . . . . . . . 774(;vBdCD~ . . . . . . . . . . 77r*VPDdC . . . . . . . . . . . . 78#fdC . . . . . . . . . . . . . . 78X|{dC . . . . . . . . . . . . . 78XUdC . . . . . . . . . . . . . . 78Zr*DdC(rD~P).d4F*X . . . . 78dCD~P\m . . . . . . . . . . . . 78
i0w._ . . . . . . . . . . . . . . 79\mi0w._ . . . . . . . . . . . . 79i0w._dC . . . . . . . . . . . . 79bTi0w._ . . . . . . . . . . . . 88Z&mjI.0&mi0w._D~ . . . . . 89
,Sw . . . . . . . . . . . . . . . . 89,Sw\m . . . . . . . . . . . . . 899Ci0w._PD,Sw(i0w._,Sw) 89b,Sw . . . . . . . . . . . . . . 101E>`FD,Sw . . . . . . . . . . . 102
bvw . . . . . . . . . . . . . . . . 103B~&mLr . . . . . . . . . . . . . 104
B~&mLrSZ . . . . . . . . . . . 104E>b . . . . . . . . . . . . . . . . 109Java b . . . . . . . . . . . . . . . 110
W!n(Java tT) . . . . . . . . . . 111Java XT . . . . . . . . . . . . . . 112
|, . . . . . . . . . . . . . . . . 112b?XT . . . . . . . . . . . . . . . 113
hCb?XT . . . . . . . . . . . . 113
\mb?XT . . . . . . . . . . . . 115G< . . . . . . . . . . . . . . . . 115
U>6p . . . . . . . . . . . . . . 119,SwMbvw!n(ODN}j) . . . . . . 119
Z 4 B >} . . . . . . . . . . . . 121VBScript ,SwM Microsoft Outlook *5,Sw 121
>}zk . . . . . . . . . . . . . . 121m{ . . . . . . . . . . . . . . . 123
JavaScript ,Sw . . . . . . . . . . . . 123>}zk . . . . . . . . . . . . . . 123m{ . . . . . . . . . . . . . . . 124
JavaScript bvw . . . . . . . . . . . . 124>}zk . . . . . . . . . . . . . . 124m{ . . . . . . . . . . . . . . . 124
`4BD-<,Sw . . . . . . . . . . . 124yZE>D,Sw . . . . . . . . . . . 124yZ Java D,Sw . . . . . . . . . . 1259("20yZ Java D,Sw . . . . . . 125
9C LDAP ,Sw4F?< . . . . . . . . 127
Z 5 B IBM Tivoli DirectoryIntegrator |nP!n . . . . . . . . 129IBM Tivoli Directory Integrator0dC`-w1 . . 129IBM Tivoli Directory Integrator ~qw . . . . . 129
=< A. 9C CloudScape }]b . . . 1316k= CloudScape. . . . . . . . . . . . 131Xh CloudScape 1!5 . . . . . . . . . . 131
=< B. vSibzICDZf . . . . 133
=< C. IBM Tivoli DirectoryIntegrator PD+VZV{/ . . . . . 135
=< D. uoVd . . . . . . . . . . 137LDAP uo . . . . . . . . . . . . . . 137IBM Tivoli Directory Integrator uo . . . . . . 137
=< E. yw . . . . . . . . . . . . 141Z}=i~yw . . . . . . . . . . . . . 142
Apache yw . . . . . . . . . . . . . 142Rhino yw . . . . . . . . . . . . . 143
Lj . . . . . . . . . . . . . . . . 143
vi IBM Tivoli Directory Integrator 5.2:C'8O
Z 1 B ri
9d5w>VaD>};Z IBM Tivoli Directory Integrator PD root_directory/examples
?<P#
;cEn
TBGTITZ IBM Tivoli Directory Integrator D5PR=D;);cEnDV[:
v Z 3 3D:i0w._;
v Z 9 3D:,Sw;
v Z 18 3D:4Su~;
v Z 20 3D:B~&mLr;
v Z 23 3D:E>`F;
v Z 31 3D:Hook;
v Z 39 3D:Delta MFc|D;
v Z 41 3D:53f";
v Z 45 3D:LP;
v Z 45 3D:tT3d;
v Z 48 3D:X*DdCM53Ts;
v Z 49 3D:lic/XBt/;
v Z 59 3D:wT;
v Z 61 3D:dC;
v Z 29 3D:CJT:D Java `;
v Z 137 3D=< D, :uoVd;
Lri~MSZ
IBM Tivoli Directory Integrator I=v Java Lr9I:
v 0dC`-w1,2F* Toolkit r GUI
v 0~qw1
=vLr<&m;v/Ibv=8hv,FwdC#z9C0dC`-w14(""
9M,$dC"9C0KP1~qw1?p/Ibv=8#
IBM Tivoli Directory Integrator0dC`-w1
(}t/ ibmditk z&mD~rE>4t/0dC`-w1,CE>hC Java VM 7
3N}"t/0dC`-w1#
K$_CZ9(M\m/Ibv=8dC,"9z\;,1&m`vdC#dCf"
*_Ha9/D XML D5"RITS\#
© Copyright IBM Corp. 2003 1
v kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq!
|`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#
IBM Tivoli Directory Integrator Server_PdC1,zIT9C IBM Tivoli Directory Integrator Server z&mD~rE>(4
ibmdisrv)4?pbv=8,CE>hC Java VM 73"t/ Server#
}ECZdCTmP|nTb,9Pm`|nP!nICTXF~qwP*M|Td
CD&m#
v kNDZ 129 3DZ 5 B, :IBM Tivoli Directory Integrator |nP!n;#
IBM APIZ20m~|(root_directory\docs\api\index.html D~)PITR=yPICDZ? Java
TsDj{<u JavaDoc#
E>Ts
E>TsZi0w._(g{dOBDGP'D)P=&IC#;)w*TsZ6IBM
Tivoli Directory Integrator 5.2:N<8O7PD0Ts1PwvKhv#
2 IBM Tivoli Directory Integrator 5.2:C'8O
Z 2 B IBM Tivoli Directory Integrator En
IBM Tivoli Directory Integrator dChvwv53i~,b)i~QdC"4SZ;p
T9Ibv=8#(#,bG;E IBM Tivoli Directory Integrator i~(,Sw"b
vwMB~&mLr)DPm,b)i~QhCT&my!a9PR=D53M}]
f"#,SwQ.p4T&mX(D}]w,xb)}]w5V;F*i0w._#
mb,dCIT|,;vr`vB~&mLr,|GIC4&m}kDB~T0%"
"XFi0w._D4P#ns,,SwMB~&mLr<IT9Cbvw4bM}
kDVZw,r_q=/4kr"MDVZw#
TB8ZPahvb)i~T0d|`XEn#
i0w._
i0w._D#f&\ZZ|&m4T3v}]4D}](}gu?"G<"nMT
s)"C4Td|4D}]*;MiOb)}]"nU+ddvA;vr`v?j#
kG!,i0w._hFME/*;N&m;vn,b;c\X*#+G,g{zk
*4P`v|Br`v>}(}g,;N&m`vn),rXk`4i0w._E>
T4PCYw#g{h*,b`&mIT9C!qDE>oT"Java bMj< IBM
Tivoli Directory Integrator &\(}g,+}]cO=ng JDBC ,SwDQEr}]
f"P,;sAXCE>"Cm;vi0w._&m|)45V#
i0w._Im`TX(==$wD,Sw9I,b)==9IKbv=8Dy!#
*q!i0w._DEv,kND6IBM Tivoli Directory Integrator 5.2:kE8O7#
s`}dC*X(i0w._",Sw"B~&mLrH)<IZE>P1SY],
rK|{|G1Xk"b#;\9CV8}VV{,kp9CXbD>zV{(}
g,å"ä)"Vt{(}B._(_).b)"UqHH#r*|GZP)=(Oa<
B;f]Jb,"RI\9z^(SE>CJ|G,yTXk\b9Cb)V{#
i0w._IT|,TB?V:
,Sw (#P=vr|`,Swek}]4(D~53"?<"}]bH)#(#,
;v,Sw*i0w._a)dk,xAY;v,Swa)dv#a;D,S
wbG IBM Tivoli Directory Integrator DEc.;,+G1;,zIT`4T
:D,Sw#,SwIT;,D==(}g Iterator"Update"Delete H)KP#
":}g,i0w._ITy]h*Im`r\Y,Sw9IT&mX(D}
]w,TK53P;P^F#;x,nCD=(G9i0w._!I\X
r%Tns/I,$T#
bvw A!r+]VZwD,Sw(}g0URL ,Sw1r0D~53,Sw1)X
kk`XDbvwX*#k,Sw;y,zIT`4zT:Dbvwr_LP
53=xDj<bvw#
5qfr
d; IBM Tivoli Directory Integrator Z(D&\ITozz8YhCbv=8,
+zXk(}mSzT:D5qfr4(FdC#bV(FIV*=V`p:
© Copyright IBM Corp. 2003 3
0}]*;1M0wXF1#0}]*;1(#ImS=0tT3d1(0d
k3d1M0dv3d1)DE>&m,x0wXF1IE>`FD Hook j
I#
$wu?
0$wu?1G;vf"Ts,||,XEi0w._+dDtT#$wu?
Z,Sw.d2m"RITZi0w._MB~&mLr.d+]#Z 45 3
D:tT3d;Pj8hvKZ}]4M$wu?.d3dtTDiv#
E>i~
0E>i~1G;vITmS=i0w._PDE>i,MCs,Sw;y#
k,Sw;,DG,0E>i~1;PNN$(eDP*r==,"RzIT
f1y]h*45Vd&\#
ki0w._\P`XDGB~&mLr:
B~&mLr
B~&mLrG;V$tZi0w._b?D IBM Tivoli Directory Integrator
i~#|G(#CZ6=Sy!a9}kDB~(*,;s+b)B~VI=
;vr`vi0w._#}g,zIThCB~&mLr4V/ FTP URL,;
st/i0w._&mvVDD~#
i0w._w
i0w._a)Z(DT//P*,|ITozzlY9(M?p}]w#KT//
P*Fwi0w._w#
i0w._w4PTBrPDYw:
Prolog(u</.0)
WH,g{0E>b1P(eKNN0+V Prolog1,raT|G@@#;s
G,Swu</.0D Hook(Z0dC`-w1PjP Prolog – BeforeInit.,"ITZi0w._D Hook !n(PR=)#IZKi0w._ Prolog
GZu</,Sw.04PD,rKboJZ<8;vr`v,Swh*DD
~(}g,-$&mDdkD~Da{),uAG|DX(Z,SwDN},
}g~qwX7"O$N}"Qw}KwM76{#
,Swu</
u</rPG4U|GZi0w._PD3ry(eDGy@N*?v,Sw
4PD#TZ?v,Sw,rPwgBy>:
1. wCC,SwD Prolog – Before Initialize Hook#
2. t/C,Sw",S=dWcD}]4r?j#
3. g{C,Sw&Z Iterator ==,G4&m Prolog – Before SelectionHook,x,Sw4Pu?!q(5)X(Z}]4DwC,Ms4P SQL
SELECT r LDAP Qw)#
4. T Prolog – After Selection Hook @@#
5. wC Prolog – After Initialization Hook(;\==gN)#
g{u</3v,Sw'\,G4i0w._w+]=IT&mKmsD
Prolog – On Error Hook#
4 IBM Tivoli Directory Integrator 5.2:C'8O
":ZbvWNT0E>,Sw1(9CE>oT5VD,Sw)@@Tc"
aXhD,Sw&\"4Pu</zk#
|zwhC
g{Q(eK;vr`v0|zw1(&Z Iterator ==D,Sw),r&m|
GD Prolog – Before Selection Hook,"R?v0|zw1(}wC,S
wD}]4G\(2F*0-<,Sw1)DWc selectEntries() &\q!Q,
S}]4DS<#b<BC,Sw5)X(Z}]4DwC,}g SQL
SELECT r LDAP Qw#;)!(Ku?,M*?v0|zw1wC Prolog– After Selection Hook#
Prolog(u</.s)
4P?v,SwD Prolog – After Initialization Hook#
i0w._-7
u</jI.s,i0w._-7t/"RXF;+]=Z;v,Sw#g{
i0w._PP;vr`v0|zw1,G4Z;v0|zw1(}4P
getNext() "S|Q,SD53lwZ;vu?4t/-7#K0|zw1jI
ZtTPDq!M3d.s,XF;+]=B;v0G|zw1,Sw,|4
P|D$w"+XF+]=B;v,Sw,TK`F#;)=oi0w._D
a2,MeU$wu?,"Rg{T;AYP;vn/D0|zw1,rw*
Ai0w._D*7"lwB;vu?#Z`v0|zw1DivP,Z;v
0|zw1aLxa)}]xi0w._1=da{/&mjO#;s,Z~
v0|zw1*<S|D4lw}]#1yPdk}]jI1,i0w._#
9#g{vV^(&mDms,i0w._2a#9#
Epilog(XU.0)
&mFw Epilog – Before Close Di0w._ Hook#
,SwXU
VZ,?v,Sw Epilog Hook 4U|GZ0dC`-w1PvVD3r;w
C:
1. Before Close Hook#
2. k}]4D,SXU#
3. After Close Hook#
Epilog(XU.s)
ns,i0w._ Epilog – After Close Hook KP#
v gH0ya=D,g{P`v,Sw&Z Iterator ==(kNDZ 11 3D:,Sw=
=;),b),Sw4U|GZdCPDT>3r(I%?AW?)k;#}g,
g{zP a M b =v0|zw1,rwC a 1=|;Y5Xu?,;si0w.
_*;= b#
v g{;P,Sw&Z Iterator ==,xRZi0w._t/1;Pa)u< Work u
?(IWE)x|(}g,(}wC;vB~&mLr,xg{;PZi0w._r
,Sw Prolog Hook P4($wu?),ri0w._T;4P%v+]#
ns,g{i0w._IZb?DXUksx}7XU(4i0w._4@#),r
aP;v Shutdown Request Hook,zITZdPEC*&mDzk,b9z\;C
|4P!1DXU#
Z 2 B IBM Tivoli Directory Integrator En 5
ITS53Ts9CXb&\x}rXT10D$wu?T0x},SwH#kND
Z 24 3D:XFi0w._Dw;Tq!|`j8E"#
Z IBM Tivoli Directory Integrator0dC`-w1– ibmditk P
t/i0w._
1zS0dC`-w1t/i0w._1,(#AYP;v,SwZ Iterator ==B$
w(}Gzri0w._a)0u< Work u?1)#g{;P|zw,"R;Pa)
0u< Work u?1,r;P}]a)xi0w._"R;4PNN$w#gOfya
=D,z9IT+`v,SwhC*|zw#i0w._SZ;v|zw*<,"R
Z0;v|zw&mjd}]/.s,i0w._a9CB;v|zwLx#
SB~&mLrrE>t/i0w._
kND:i0w._N}+];Tq!|`E"#
CJi0w._PD,Sw
?v,Sw<TE>d?DN=4a)xi0w._E>,|y9CD{FG|mS
Ai0w._1z*|!qD{F#
k"b,zIT9C system.getConnector() /}SE>/,X0k,Sw,;}bG
;)P-iDC'9CD#SbvwCq!D,SwTsG-<,SwTs,|Gi
0w._,SwX(Z}]4D?V#1z|DNN,SwD`M1,5JZ;;d
}]4G\(-<,Sw),|a)K&\TCJX(53"~qr}]f"OD}
]#0i0w._,Sw1Ds`}&\(|(0tT3d1"04Su~1M Hook)
<GI IBM Tivoli Directory Integrator ZKa)D,"RZ*;,Sw`M1G\X
#VE#
i0w._N}+]
P}V==+}]Eki0w._:
v Zi0w._P(}g,Z Prolog E>P)zIzT:Du<u?#
v S;vr`v|zwa)#
v C4Td|i0w._rB~&mLrDN}t/i0w._#
g{zk*C4Td|i0w._rB~&mLrDN}t/i0w._,rz5P
=v!n:
v 9CNqwCi(TCB),bGW!D=(#
v 1Sa)0u< Work u?1#
":bG*rBf]a)D#
NqwCi(TCB)
y>C(: wC_9C0NqwCi1(TCB)4*i0w._hCm`N}#TCB
ITrC'a);5PIi0w._8(DdkrdvN}(gi0w._DwC/
5X!n(Py(e),T09wC_\;*i0w._D,SwhCN}#TCB IT
B_-?V9I:
v +]Ai0w._D0u< Work u?1:tcb.setInitalWorkEntry()
6 IBM Tivoli Directory Integrator 5.2:C'8O
v ,SwN}:tcb.setConnectorParameter()
v i0w._Ddk/dv3dfr(Z0dC`-w1DwC/5X!n(Bh
C)
v I ! D C ' a ) D [ S w T s , | S i 0 w . _ S U y P $ w u ? :
tcb.setAccumulator()
}g,TBzkITjIC0u< Work u?1t/i0w._"+;vFw MyInputD,SwD filePath N}hC*0d:\myinput.txt1:
var tcb = system.newTCB(); // Create a new TCBvar myIWE = system.newEntry(); // Create a new Entry objectmyIWE.setAttribute("name","John Doe"); // Add an attribute to myIWEtcb.setInitialWorkEntry ( myIWE ) // Set the IWE and parameter
// (below);// Note that since this is a JavaScript string, we must "escape" the forward slash// or use a backslash (Windows syntax)tcb.setConnectorParameter ( "MyInput", "filePath", "d:\myinput.txt" );
var al = main.startAL ( "MyAssemblyLine", tcb ) // Start the AL with the tcb;
9C[Sw: gH0ya=D,z9ITC TCB +[SwTs+]=i0w._#
[SwITGTBNb;n:
java.util.CollectionK!yP$wu?"mSA/O(}g ArrayList"Vector H)P#
com.ibm.di.server.ConnectorInterface(-<,Sw)
Z?vi0w._-7Da2,K-<,SwD putEntry() =(ak$w u?
;pwC#
com.ibm.di.server.ParserInterface(bvw)
Z?vi0w._-7Da2,KbvwD writeEntry() =(ak$wu?;p
wC#
com.ibm.di.server.AssemblyLineComponent(i0w._,Sw)
Z?vi0w._-7Da2,Ki0w._,SwD add() =(ak$wu
?;pwC#
g{[Sw;Gb)`rSZ.;,+Wvl##
}g,*+i0w._DyP$wu?[S= XML D~P,IT4PTBYw:
var parser = system.getParser ( "example_name.XML" ); // Get a Parser// Set it up to write to fileparser.setOutputStream ( new java.io.FileOutputStream ( "d:/accum.xml" ));parser.initParser(); // Initialize it.tcb.setAccumulator ( parser ); // Set Parser to tcb
var al = main.startAL ( "MyAssemblyLine", tcb ); // Start AL with tcbal.join(); // Wait for AL to finish
parser.closeParser(); // Close the parser - this flushes and// closes the output file
1;,zITdC,Sw,x;GgBy>V$`4bvw:
var connector = system.getConnector("myFileSysConnWithXMLParser");tcb.setAccumulator ( connector );
Z 2 B IBM Tivoli Directory Integrator En 7
var al = main.startAL( "MyAssemblyLine", tcb);al.join();
connector.terminate();
TCB (#IC'u</,fsIi0w._9C#g{i0w.__P0wC/5X1
f6,r TCB +dktT4Ui0w._y$ZDXB3d*0u< Work u?1,
",yhCa{Ts#byvG*K9i0w._Db?wCSZ\;#V`,,4
cZ?$wu?{FZi0w._P|D2GgK#;) TCB +]Ai0w._,r
TCB ;aY5XNN+w#9Ci0w._D getResult() M getStats() lwa{Ts
M3FE"#
TCB a{3dZ Epilog .04P,rKzT;ITZi0w._wC_=onUa{
.0CJnUa{#
a)u< Work u?(IWE)
bGm;V+]N}D=(,"IZrBf]TD-r\='V#
(}B~&mLrrSE>9C system.startAL() |nt/i0w._1,T;IT
+]N}Ai0w._,(}hC0u< work u?1((} work d?CJ)PDt
TrXT5a)x|#;sIC'4&Cb)5hC,SwN}(}g,Zi0w.
_ Prolog – Init Hook P9C connectorName.setParam() /}#
":C'XkC task.setWork(null) wCe}$wu?,qri0w._PD|zwaZ
Z;v-7O(}#
zIT9C getResult() /}lii0w._Da{(|Gi0w._#91D$wu
?)#m{6IBM Tivoli Directory Integrator 5.2:N<8O7PD0(KP1a)D)
,Sw1#
BfGZ,SwN}5PC IWE +]D;v>}:
var entry = system.newEntry();entry.setAttribute ("userNameForLookup", "John Doe");
// Here we start the AssemblyLinevar al = main.startAL ( "EmailLookupAL", entry );
// wait for al to finishal.join();
var result = al.getResult();
// assume al sets the mail attribute in its working entrytask.logmsg ("Returned email = " + result.getString("mail"));
3d
IBM Tivoli Directory Integrator |,;V03d1&\,|9C'\;G<i0w._
P;vr`v,SwDYwTcTsXB]>,x^hX*D}]4#bv&\{C
K053f"1$_#kNDZ 41 3D:53f";Tq!|`PX053f"1D
E"#
8 IBM Tivoli Directory Integrator 5.2:C'8O
ZITG<rXB]>i0w._.0,XkWHf* IBM Tivoli Directory Integrator
ZN&f"G<}]Di0w._#bGZ0i0w._j8E"10ZD3d!n
(PjID#ZCA;D%?G;vjP}]bDVN,zITdk?<76)53
9C#
G<i0w._dk
;)dCK*9CD0C'f"}]b176,;sMXk!q*G<D,Sw#b
2GZi0w._3d!n(PjID#C!n(rzJVKi0w._,SwDP
m,?Pa)KG<QtCMXEQtC=v4!r#*G<3v,SwDYw,;
h*C,Sw!qG<QtC#
*t/0i0w._G<1,kS0i0w._j8E"10ZD%?t?KP4%
DB-PmP!qG<4%#1zVZKPi0w._1,!(,SwDyP}]f
!Yw<;G<#
*S|nPT Record ==KPi0w._,kC -qr *Xt/~qw#
&Z Record ==1,i0w._#f|S-<,SwT0 TCB(g{Q;+]Ai
0w._)SUDyPZ](tTMXT)#5JO;G<Kdk,Sw(&Z
Iterator"Lookup r Call/Reply ==D,Sw)D}]#xPdv(Update"Add r
Delete ==)D,SwD}]ZG<1;vT,+I-<,SwWvDms{"a;G
<"TsZXED}LPXB]>#
i0w._G<D3dXE
1;vi0w._&Z Sandbox ==1,yPhCXED,Sw<&Zib==#bb
6E|GD0-<,Sw1Yw(}g,getNext()"findEntry() H)5JO4;wC#
XED}LPa#bb)Yw#
*T Playback ==KPi0w._,Xk(}i0w._3d!n(PT&DXEQ
tC4!r4!q*Tib==KPD,Sw#
":"GyPG<D,Sw<h*tCXE(IT9|G\;CJn/D}]4),
;}bI\0lXEYwDa{#
*S|nPKPi0w._,kC -qp *Xt/~qw#&Z3d==Di0w._K
P1xP4TQG<}]/Ddk(|(0u< Work u?1)#}g,g{Z&Z3
d==Di0w._P,zP;v JMS ,Sw,r JMS ,SwSH0G<D}]P
lwdk,"R5JOS;;u</#
ZG<i0w._1,~qwZX(D Database ?<P4(;v CloudScape }]b,
9Ci0w._{Fw*}]b{F#C}]b|(KCZi0w._PD?v,S
wDm#&Z3d==Di0w._IT(}X|{QG<D,Sw,;smS;v
xPdnu{FDBD,Sw,4f;d;vr`vib,Sw#
,Sw
,SwCZCJ"|BE"4#|GD$wMGV6}ZKPDVN,9z;X&m
YwwV}]f""53"~qr+dD<u8Z#,yX,?v`MD,Sw<h
F*9CX(D-ir API,&m}]4CJD8ZTczIT("Z}]YwMX
5,T0(Fng}KM;BTXFD&m#
Z 2 B IBM Tivoli Directory Integrator En 9
y>OP=V`pD,Sw:
v Z;V`pG}]Z]D+dMa9T,Sw<GQ*D(4,IT9C*{D
API,g JDBC r LDAP 4i/rlb}]4D#=)#
v Z~V`pG+dzFQ*,+Z]a94*1#bV`ph*;vbvw(kN
DZ 17 3D:bvw;r6IBM Tivoli Directory Integrator 5.2:N<8O7PD:b
vw;)4bMrzIZ]a9T9i0w._}#KP#
1z*i0w._!q,Sw1,+T>;vT0r,|9z\;!qzk*SPL
PD,Sw`M#ZYw IBM Tivoli Directory Integrator 1,LPG;vX*DEn,
r*bv=8Py|(DyPi~<aSd|i~LP;)r+?XT;N;y>`
M,r4T$HdCDi~(0dC/@w1PD Connectors"Parsers M EventHandlers
D~P)b#
TBhvK,Sw0:(g0dC`-w1Py4=D)M|GD,e:
system:/Connectors/ibmdib),SwGj<D$hD,Sw,|,Z IBM Tivoli Directory Integrator 5.2
P#
/Connectors/b)GzQZ10dCP$HdCD,Sw#
myInclude:/Connectors/b)GzITSd|dCD~P|,D,Sw(kNDZ 62 3D:|,/{
FUd;)#
@myConnectorbG;vG#XbDiv,ZKzITXB9CQZi0w._PR=,Sw
DdC,x;GLP;v,Sw(myConnector ICw;v>},|ITGN
N,Sw{F)#
|,K IBM Tivoli Directory Integrator =xDyP,SwDPm(kND6IBM Tivoli
Directory Integrator 5.2:N<8O7D:,Sw;)#;}z2IT`4T:D,Sw
(kND6IBM Tivoli Directory Integrator 5.2:N<8O7D0E>,Sw1)#
i0w._DT/P*9yP&Z Enabled 4,D,SwSnOKD,Sw@N*<
(gZ0i0w._j8E"10ZPD0,SwPm1Py4=D)\;KP#,
Sw5JOv24GI,SwD==v(D#,SwITBP==KP:
v Iterator
v Lookup
v AddOnly
v Update
v Delete
v CallReply
?V,Sw==v(;VX(,SwDP*,x"GyP,Sw<'VyPKP=
=#}g,0D~53,Sw1;'V%@;Vdv==,AddOnly,x;'V
Update"Delete r CallReply#9C,Sw1,XkWHiDKi~DD5Tq!y'V
==DPm(kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD0-<,S
w1)#
10 IBM Tivoli Directory Integrator 5.2:C'8O
,Sw#=
,SwITA4}]#0,Sw#=1hvA4}]1yZ{D+w#g{h*dk
VN,ri0w._Z;PvVZ-<,SwPDivB+'\#
#=ITZ,SwD#=!n(P4=,"RITZK(F3)P*,;}b!vZ
}]4>m#zITS#=!n(i/Q,SD}]4D#=(g{C53'V),
(}%w,SMA!B;v4%lbtT,uAT:(etT#kNDZ 95 3D:"
V}]4#=;#
,SwgN2m}]($wu?)?
}]Z,Sw.d9C;VFw0$wu?1Df"Ts4+]#Cf"TsIT(
}9C work d?SE>CJ,xRzIT>}tT"mSBDtTT0|DtT5#
*9i0w._KP,XkS3v42k$wu?#b(#G9ChC* Iterator ==
D,SwjID#ZbVivB,|zw}/}]Ai0w._#z9ITZi0w
._t/1+0u< work u?1+]x|,xRzuAITZ Prolog E>P4(T
:D$wu?,}g:
init_work = system.newEntry(); // Create a new Entry objectinit_work.setAttribute("uid", "cchateauvieux"); // populate ittask.setWork(init_work); // make it known as work to the Connectors
":Prolog PD IWE ITS*S;I{D%+]|zwa)#kNDZ 12 3D:i0
w._PD`v|zw;Tq!bZi0w._PDNN|zwDP*OD1w
C#
$wu?2ITI&Z Lookup ==D,Sw2k,;}XkhC04Su~1,by
|M;@5Z;ICD$wu?PDtT#
,Sw==
i0w._,SwD==(eKC,SwZ}]wPyg]DG+,"XFKi0w
._DT/P*gN*z}/i~#,SwIT&ZTByV==.;:
v Iterator
v Lookup
v AddOnly
v Update
v Delete
v CallReply
b)==aZBf8ZPV[#PX,Sw==P*Dj8hvT0Ti0w._D
;chv,kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:i0w._
M,Sw==wL<;#
Iterator ==
&Z Iterator ==D,SwCZ(h}]4"i!d}]#Iterator ,Sw5JO(}}
]4u?|z,A!|GDtT5"+?vu?+]Ai0w._0dG Iterator ,S
w#&Z Iterator ==D,Sw;F*0|zw1#
Z 2 B IBM Tivoli Directory Integrator En 11
":}]4?9G24(}]b"LDAP ?<"XML D5H)T0}]4D}]5J
gNf",G^Xt*D#?v,SwzmX(}]4OD;visc,zIT
(}u?MtT`D5}CJM&m}]#
i0w._(}KG)(}u< work u?wCDTb,kNDZ 6 3D:i0w._
N}+];)(#|,AY;v&Z Iterator ==D,Sw#|zw(&Z Iterator =
=D,Sw)*i0w._a)}]#g{i0w._;P|zw,r|(#G;P
CD,}G|Sd|4(}g,t/i0w._DE>rxL,r Prolog E>P4(D
}])q!}]#
hC*} Iterator .bDNN==Di0w._,Sw<4US,SwPmD%?*<
D3rt/#m;=f,;\|zwZi0w._PD;CgN,|G<<UZd|
G Iterator ,Sw.0WHKP#mb,g{zZ%vi0w._P9C`v|zw,
rG4U|GZ,SwPmPD3r?N9C;v|zw#XZ|`E",kND
:i0w._PD`v|zw;
i0w._PD`v|zw: g{P`v,Sw&Z Iterator ==,b),Sw4U
|GZdC(M0dC`-w1PD,SwPm)PvVD3rk;,"R?N&m
;v#rK,g{z9C=v|zw,rZ;vSd}]4A!}],+zID$w
u?"MAZ;vG Iterator ,Sw,1=|=od}]/Da2#1Z;v|zw&
mjddk41,Z~v|zw*<Ak}]#
u< work u?;O*4TyPd||zw.0&mD;I{|zw#bb6E IWE
x}Z;v-7}LPDyP|zw,+]Ai0w._PDZ;vG Iterator ,Sw#
Z6IBM Tivoli Directory Integrator 5.2:N<8O7D:i0w._M,Sw==wL
<;PD0i0w._w13fOIT4=KP*#
Y(3vi0w.__P=v|zw,a Z b 0#r9CZ;v|zw a(i0w.
_vT b)1= a ;Y5Xu?#;si0w._P;A b(vT a)#g{3v IWE
+]AKi0w._,rZZ;v-7PavTb=v|zw,.si0w._*<
wC a#
P1 IWE CZ+dCN}+]xi0w._,x;G}]#;x,IWE DvVa<B
ZZ;v-7}LPx}i0w._PD|zw#g{;#{Kiv"z,zXk(
}wC Prolog E>PD task.setWork(null) /}4eU$wu?Ts#ba9Z;v|
zw}#KP#
9C Iterator ==: 9C&Z Iterator ==D,SwDn#{#=G:
1. +&Z Iterator ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* Iterator ==#
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. %w,SwdC0ZD#=!n(I"V"(eK}]4D#=:
a. %w,SA}]44%Tt/,Sw#
12 IBM Tivoli Directory Integrator 5.2:C'8O
b. %wA!B;vu?4%TS}]4q!B;vu?"li|T"VtT#
c. g{WcD}]4'V,z9IT%w"V}]4D#=4%#
d. 9CmSM>}4%mSd|tTr>}VPtT#
4. Zdk3d!n(PITS,SwtTPmP!qtT,;s+|GO/=0dk
3d1P#z9IT9CmSM>}4%mSM>}tT#
b)Q3dDtT+S}]4Plwv4"+]Ai0w._PDG Iterator ,Sw#
Lookup ==
Lookup ==9z\;9Cb)53PtT.dDX5,,S4T;,}]4D}]#&
Z Lookup ==D,Sw(#F* Lookup ,Sw#
*hC Lookup ,Sw,Xkf_,SwgN(ei0w._PQPD}]MQ,S5
3PR=D}].dD%d#bFw,SwD04Su~1,"R?v Lookup ,Sw
<P;vX*D04Su~1!n(,dPIT*iR%dDu?(efr#
9C Lookup ==: 9C&Z Lookup ==D,SwDn#{#=G:
1. +&Z Lookup ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* Lookup ==#
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. %w,SwdC0ZD#=!n(I"V"(eK}]4D#=:
a. %w,SA}]44%Tt/,Sw#
b. %wA!B;vu?4%TS}]4q!B;vu?"li|T"VtT#
c. g{WcD}]4'V,z9IT9C"V}]4D#=4%#
d. ns,IT9CmSM>}4%mSd|tTr>}VPtT#
4. Zdk3d!n(PITS,SwtTPmP!qtT,;s+|GO/=0dk
3d1P#z9IT9CmSM>}4%mSM>}tT#
5. %w,SwdC0ZD4Su~!n("hCtT%dDfr#bozP=v!
q:
a. %wmSB4Su~4%"SQ,SD53!qtT"%dDKc{(}g,
Equals"Begins With H)T0*xP%dD$wu?tT#1,Sw4P Lookup
1,|y]zQ8(D04Su~14(WcD API/-io(,CT9bv=
8@"Z9CD53`M#zITmS`v04Su~1,|GC<{Kc{
AND ,Sp49(QwwC#
b. z9IT%w9C(FE>9(u~4%r*E>`-w0Z,dPzIT4
(T:DQwV{.,9C ret.filter Ts+KQwV{.+]X,Sw#}g:
ret.filter = "uid=" + work.getString("uid");
kNDZ 18 3D:4Su~;Tq!|`XZ04Su~1DE"#
Z 2 B IBM Tivoli Directory Integrator En 13
zZ0dk3d1PA!("Fc)DtTT9C$wu?TsDd|BN,SwM
E>_-GICD#
AddOnly ==
&Z AddOnly ==D,Sw(AddOnly ,Sw)CZ+B}]u?mS=}]4P#
bV,Sw==8u;h*dC#hC,SN},;sS$wu?!q*4kDt
T#
9C AddOnly ==: 9C&Z AddOnly ==D,SwDn#{Mr%D#=G:
1. +&Z AddOnly ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* AddOnly ==#
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. r_,g{}]ISQ,SD53A!,rIT%w,SwdC0ZD#=!n(
4"V"(eK}]4D#=:
a. %w,SA}]44%Tt/,Sw#
b. %wA!B;vu?4%TS}]4q!B;vu?"li|T"VtT#
c. g{WcD}]4'V,z9IT9C"V}]4D#=4%#
d. zIT9CmSM>}4%mSd|tTr>}VPtT#
4. Zdv3d!n(P,ITS$wu?0Z!qtT,;s+|GO/=0dv3
d1P#z9IT9CmSM>}4%mSM>}tT#
Zi0w._D4PZd,_P!(tTDu?+mS=}]4P#
Update ==
&Z Update ==D,Sw(Update ,Sw)CZZ}]4PmSM^D}]#TZS
i0w._+]D?vu?,Update ,Sw<"TS}]4(;%dDu?T9CSU
=Du?DtT5^D|#
9C Lookup ,Sw1,Xkf_,Sw,SwgN(ei0w._PQPD}]MQ
,SD53PR=D}].dD%d#bFw,SwD04Su~1,"R?v Update
,Sw<P;vX*D4Su~!n(,dPIT*iR%dDu?(efr#g{
4R=byDu?,r+r}]4mS;vBu?#;x,g{R=;v%dDu
?,r^D|#g{`vu?%d04Su~1,rwC Multiple Entries FoundHook#xR,ITdC0dv3d1T8(Z0mS1r0^D1YwD}LP9C
D)tT#
4P0^D1Yw1,;|D}]4PG)0dv3d1PjG*0^D(Mod)1
DtT#g{Si0w._+]Du?D3vtT;_P5,rCtTD0Null P*1
dC\X*#g{|hC*>},rZ^DDu?P;fZCtT,rKZ}]4P
^(|DCtT#g{|hC*NULL,rZ^DDu?PfZCtT,+G_PU
5,bb6EZ}]4PQ>}CtT#
14 IBM Tivoli Directory Integrator 5.2:C'8O
Update ,Swa)D;vX*&\GFc|D!n#|r*1,,SwWHTUI5l
iB5,"RvZh*DX=|B#rKzITx};X*D|B,g{}Z|BD
X(}]4D|BYw\1X,G4by&m5JOI\\P[5#
9C Update ==: 9C&Z Update ==D,SwDn#{Mr%D#=G:
1. +&Z Update ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* Update ==#
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. %w,SwdC0ZD#=!n(I"V"(eK}]4D#=:
a. %w,SA}]44%Tt/,Sw#
b. %wA!B;vu?4%TS}]4q!B;vu?"li|T"VtT#
c. g{WcD}]4'V,z9IT9C"V}]4D#=4%#
d. zIT9CmSM>}4%mSd|tTr>}VPtT#
4. Zdv3d!n(P,ITS$wu?0Z!qtT,;s+|GO/=0dv3
d1P#z9IT9CmSM>}4%mSM>}tT#
5. %w,SwdC0ZD4Su~!n("hCtT%dDfr#bozP=v!
q:
a. %wmSB4Su~4%"SQ,SD53!qtT"%dDKc{(}g,
Equals"Begins With H)T0*xP%dD$wu?tT#1,Sw4P
Lookup(Update P*D;?V)1,|y]zQ8(D04Su~14(WcD
API/-io(,CT9bv=8@"Z9CD53`M#zITmS`v04
Su~1,|GC<{Kc{ AND ,Sp49(QwwC#
b. zIT%w9C(FE>9(u~4%r*E>`-w0Z,dPzIT4(
T:DQwV{.,9C ret.filter Ts+KQwV{.+]X,Sw#}g:
ret.filter = "uid=" + work.getString("uid");
kNDZ 18 3D:4Su~;Tq!|`XZ04Su~1DE"#
Zi0w._D4PZd,+Z}]4P|B!(u?tT#
":Z Update ==P,IT|B`vu?#kND6IBM Tivoli Directory Integrator
5.2:N<8O7PD:i0w._M,Sw==wL<;#
Delete ==
&Z Delete ==D,Sw(Delete ,Sw)CZS}]4>}}]#TZ?v+]A
Delete ,SwDu?,|<"TZQ,SD53PR=%dD}]#g{R=%v%d
Du?,r+d>},qrg{4R=%dDu?,rwC On No Match Hook,r
ZR=`v%d1wC On Multiple Entries Hook#k9C Lookup M Update ==
;y,Delete ==h*z(efr,CTiR%dDu?T>}#bGZ,SwD04
Su~1!n(PdCD#
9C Delete ==: 9C&Z Delete ==D,SwDn#{Mr%D#=G:
Z 2 B IBM Tivoli Directory Integrator En 15
1. +&Z Delete ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* Delete ==#
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. %w,SwdC0ZD#=!n(I"V"(eK}]4D#=:
a. %w,SA}]44%Tt/,Sw#
b. %wA!B;vu?4%TS}]4q!B;vu?"li|T"VtT#
c. g{WcD}]4'V,z9IT9C"V}]4D#=4%#
d. zIT9CmSM>}4%mSd|tTr>}VPtT#
4. Zdk3d!n(P,ITS0,SwtT1PmP!qtT,;s+|GO/=
0dk3d1P#z9IT9CmSM>}4%mSM>}tT#
":0dk3d1Z Delete ==PICT+}]4PR=D%du?Ak conn u
?Ts,;sCTsMIZzDE>(}g,7(Cu?Gq75;>})P
9C#
5. %w,SwdC0ZD4Su~!n("hCtT%dDfr#bozP=v!
q:
a. %wmSB4Su~4%"SQ,SD53!qtT"%dDKc{(}g,
Equals"Begins With H)T0*xP%dD$wu?tT#1,Sw4P
Lookup(Update P*D;?V)1,|y]zQ8(D04Su~14(WcD
API/-io(,CT9bv=8@"Z9CD53`M#zITmS`v04
Su~1,|GC<{Kc{ AND ,Sp49(QwwC#
b. zIT%w9C(FE>9(u~4%r*E>`-w0Z,dPzIT4(
T:DQwV{.,(} ret.filter Ts+KQwV{.+]X,Sw#}g:
ret.filter = "uid=" + work.getString("uid");
kNDZ 18 3D:4Su~;Tq!|`XZ04Su~1DE"#
CallReplyCallReply ==CZks}]4~q(}g Web ~q),b)}]4~q*sz"Md
kN}"T5X5&p#kd|==;,DG,CallReply 9CITCJdkMdvtT
3d#
9C CallReply ==: 9C&Z CallReply ==D,SwDn#{Mr%D#=G:
1. +&Z CallReply ==D,SwmSAi0w._:
a. R|%w0dC/@w1PD Connectors D~P,r!qTs->B(,Sw...#
b. |{BD,Sw#
c. !q,Sw`M#
d. +BD,SwhC* CallReply ==#
16 IBM Tivoli Directory Integrator 5.2:C'8O
2. Z IBM Tivoli Directory Integrator0dC`-w1P%wzD,SwDdC... !n
(,"Z,SS!n(P*K,SwhC,SN}#P),Sw9h*ZbvwS
!n(PdC;vbvw#
3. Zdv3d!n(P,ITS0,SwtT1PmP!qtT,;s+|GO/=
0dk3d1P#z9IT9CmSM>}4%mSM>}tT#b)tTw*d
kN}"MA~qwC#
4. Zdk3d!n(P,ITS,SwtTPmP!qtT,;s+|GO/=0d
k3d1P#z9IT9CmSM>}4%mSM>}tT#b)tT$ZI*~
qwCD5XN}#
,Sw4,
,SwD4,v(K|Zi0w._DYwPDNk6p#\D45,i0w._4
P=v6pD,SwYw:
v Zi0w._Yw*<1t/,Sw,"Zi0w._jI1XUd,S#
v Zi0w._DYw}LPy],Sw==}/,Sw#
Enabled 4,
Enabled G,SwD}#4,#Z Enabled 4,B,,SwaZi0w._DYw}L
P;t/"XUT0&m#
Passive 4,
Passive ,Sw(&Z Passive 4,D,Sw)Mg Enabled ,Sw;y;t/MXU#
+G,|G;a;i0w._DT/P*}/#;x,E>zkITS IBM Tivoli
Directory Integrator a)DCZE>`FDNNXFcwC&Z Passive 4,D,Sw#
}g,g{i0w._PP;v Passive ,SwFw myErrorConnector,rITCB
PE>zkwCd add() Yw:
var err = system.newEntry(); // Create new Entry objecterr.merge(work); // Merge in attributes in the work Entry// This next line sets an attribute called Errorerr.setAttribute ( "Error", "Operation failed" );myErrorConnector.add( err ) // Add new err Entry;
Disabled 4,
Z}#Di0w._D$n}LP,&Z Disabled 4,PD,SwH;\u</(MX
U),2;\Yw#g{k*ZE>P9C|,rXkT:+|u</#
&Z Disabled 4,D,SwD{FQ"a+8r null,rKITgB`4u~zk:
if (myConnector != null)myConnector.connector.aMethod();
T&mzF.+ myConnector hC* Disabled 4,Div#
K4,(#CZJOoOZd,TcZwT1r/bv=8,PzZ9yPJbV?
/#
bvw
bvwIkVZwi~(}g,0D~53,Sw1)aO9C4bMrzI}A!
r4kDZ]Da9#
Z 2 B IBM Tivoli Directory Integrator En 17
1 z T < b v D V Z w k y ! q D b v w ; ; B 1 , r z + q C
sun.io.MalformedInputException#}g,9C#=!n(/@;vD~1,aT>
ms{"#
IBM Tivoli Directory Integrator0dC`-w1a)K}vX=zIT!qbvw:
1. VZw,SwDbvw!n(P
2. 0&CbvwYw1(ZB~&mLrDYw3d!n(P)P
3. SzT:DE>(}g,Hook"E>i~T0B~&mLrPD0(FE>Y
w1)
PX%vbvwD|`E",kND6IBM Tivoli Directory Integrator 5.2:N<8O7
PD:bvw;#
V{`k*;
Java2 9C Unicode w*dZ?V{`k#1zZi0w._M,SwP9CV{.M
V{1,<UY(|GG Unicode#s`},Swa)K;)V{`k*;D=(#1
zZ>X53OA!D>D~1,Java2 Q-("K1!DV{`k*;(b!vZ}
ZKPD=()#
+Gz##aSC;,V{`k4TE"xP`kDD>D~PA!}]rrdP4
k}]#}g,h*bvwD,Sw(#ZbvwdCPS\;v characterSet N}#
KN}XkhC*Z Java2 KP1D5PR=DQS\D*;m.;#
ICT
kND Java 2 D5Tq!IC*;mDPm#
4Su~
04Su~1CZf*&Z Update"Lookup M Delete ==D,SwgN(ei0w
._PD}]tTMQ,SD53PR=D}]tT.dD%d#ITZ0dC`-
w1P(}4Su~(vT&Z Update"Lookup M Delete ==D,SwtC)CJ
04Su~1#
P=V`MD04Su~1,r%M_6#
r%4Su~
TZ?vr%4Su~,8(,SwtT(Z0,Sw#=1P(eDG)tT)"
*9CDKc{(}g,Contains"Equals H)T0*ZYwP9CD5#z9CD5
IT1Sdk,r|IT}C$wu?(K1Zi0w._wPIC)P3vtTD
5#1,Sw4P Lookup Yw(TZ Lookup"Update M Delete ==)1,|+04
Su~1*;*X(Z}]4DwC,9z\;#Vbv=8@"ZWc<u#
g{k*9C$wu?P3vtTD59(04Su~1,;hZ04Su~1D5
VNP9CCtTD{F,.0SO@2{E($)#rK,g{k*{F* cn DtT
k$wu?PD3vFw FullName DtT`%d,r04Su~1&8(*:
cn EQUALS $FullName
g{k*1SiR3vX(DK,rCDV#?5hC04Su~1:
18 IBM Tivoli Directory Integrator 5.2:C'8O
cn EQUALS Joe Smith
":@2{E($);%d`5tTDZ;v5#g{k*}]4PD3vtTkf"
Z$wu?tTPD`v5PNb;v`%d,r9C @ {E(@)#}g:
dn EQUALS @members
K>}"T+Q,SD53PD dn tTk{F* members D$wu?PD`5t
TDNb;v`%d
,SwIT(e`v04Su~1,"Rb)04Su~1Q,Sp4((}9C<
{Kc{ AND)TiR%d#
0r%4Su~1D5VNI\9CDq=P:
D>V{.
3dA_PC5D#?#
$Name k work.getString(0Name1) ;B,4tT Name DZ;v5#
@Name
`5tT Name DdP;v5#
_64Su~
P10r%4Su~1G;;D,r*`v04Su~1.d\G4P AND Kc#_
- OR <UGIT#bD#(etIv,SwTiRQwu~D?v?V,;s9Cb
)iRPD?;vZi0w._Dd`?VWH5XDNbu?#b)&Z Lookup =
=D,SwPD?;v<Xk_P`,DtT3d,+G;)R=K;vu?,rX
kvTfsyP&Z Lookup ==D,Sw#}g,;)R=K}],a(}(eM9
C lookupSucceeded j>(Cj>Z?v,SwD After Lookup PhC* true,
"R2aZ Before Lookup Hook P9C)TvTsLDiRYw#
;},z9IT(}!P9C(FE>9(u~4!r44(T:D(FQwu~#
ba*za)E>`-wT`4T:D04Su~1mo=#"GyPD,Sw<'
V0_64Su~1,,SwD5aywGq'V0_64Su~1#kND6IBM Tivoli
Directory Integrator 5.2:N<8O7PD:,Sw;#
z9(DQwmo=I\{OWcD53$ZDo(#*+zDQwmo=+]A,
Sw,XkCV{.mo=nd ret.filter Ts#
SQL ,SwD;vr% JavaScript™ >}*
ret.filter = " ID LIKE ’" + work.getString("Name") + "’";
K(F04Su~1Y(;v>},dP}]4_P{F* ID DtT((#GP{),
RGk*|k$wu?PD Name tT`%d#
":
1. SQL mo=DZ;?V(Select * from Table Where)GI IBM Tivoli Directory
Integrator a)D#
2. Q-mSK%}E,r* work.getString() 5XV{.,x SQL o(*sV{.
#?=_xP%}E#
3. bo49CxP $ M @ DXbo(#
Z 2 B IBM Tivoli Directory Integrator En 19
4Su~ms
9C04Su~11n#{DmsG:
ERROR> AssemblyLine x failed becauseNo criteria can be built from input (no link criteria specified)
1zP04Su~1}C3vtT,xZiRD}LP^(R=CtT1a"zbv
ms#}g,9CTBD04Su~1:
uid equals $w_uid
g{$wu?P;fZ w_uid,r04Su~1hC'\#bI\Gr*94Sdk4
A!|(}g,;Z0dk3d1PrZdk4P1Y|)rQSE>PD$wu?
P+|>}#;d05,/}wC work.getAttribute("w_uid") 5X null#
\bbVivD;V=(GZ&Z Lookup"Delete r Update ==D,SwD BeforeExecute Hook P`4;)zk,TcZIZ1YtTx^(bv04Su~11x}
C,SwDYw#}g:
if (work.getAttribute("w_uid") == null)system.ignoreEntry();
zD5q_-I\h*d|&m,}g skipEntry() wCx;G ignoreEntry(),skipEntry()
a9i0w._#9&m10u?"SBD|zD%K*<#x ignoreEntry() /};G
x}10,Sw"Lx&mi0w._D#`?V#
B~&mLr
B~&mLrhFCZr/ IBM Tivoli Directory Integrator ~qwPtCB~DNq#
9CB~&mLr1,zIT9C08rk%w1~wdC*I!DYw#!\ IBM
Tivoli Directory Integrator a)K;)$(eD/}9C&m|Sr%,+z,yIT
ZB~&mLrPCE>`FT:D_-#
P}`B~&mLr:
r%B~&mLr
b)B~&mLr8u;PZ(D&\,"Rw*w*E>]w,zITZd
P(eCB~&mLr*v24#=v#CD>}G0(C_LB~&mL
r1M0(1wB~&mLr1#0(C_LB~&mLr1;GZt/14
P%@;iE>,x0F1wB~&mLr1IT{CF.NqZE>`FD
_-$n1(}g,? 10 VS,r?vGZ;D 12:00 H)xPdC#}K
PE>!n()z`4?vB~*4PDzkTb,0r%B~&mLr19
PdCMG<!n(,yPB~&mLrP<Pb=v!n(#
j<B~&mLr
0j<B~&mLr1(},SA3)53r+dMH}B~(*4xP$
w#yP0j<B~&mLr1<P`,Dgf,a)K;v Hook !n("
;vdC!n(CThC,SN}";vG<!n(CT(e Log4j appender
T0;vYw3d!n(9zITZdP9(0u~-Yw1PmT&mMV
IB~#
(CB~&mLr
d;0(CB~&mLr1I\a);)k0j<B~&mLr1`,Dgf
i~,+|G;|,Yw3d#b)B~&mLr5VxPB~&mMVID
20 IBM Tivoli Directory Integrator 5.2:C'8O
P*,a)K;vX(Z|GDhFDgf#}g,0Web ~qB~&mL
r1_Pj<DdCMG<!n(#mb,9P;v WSDL !n(,dPzI
T!q*4U Web ~qYw4"<Di0w._,VIT8>B~&mLrz
I WSDL D5,uA+|w* Web ~qw;yDwz#
t/B~&mLr
yPB~&mLr<_PdC!n(,dPAY|,;vT/t/~q4!r#!q
K4!ra8> IBM Tivoli Directory Integrator ~qwZdt/1$nCB~&mL
r#
":bVT/t/P*IT9C -D |nP*X4{C(PX|`E",kNDZ 129
3DZ 5 B, :IBM Tivoli Directory Integrator |nP!n;#bo9P -t *X
CTT=X8(*t/DB~&mLr)#
g{k*S0dC`-w1t/3vB~&mLr,;hZ0dC/@w1PR|%
wCB~&mLr"SOBDK%!qKP#9ITr*CB~&mLr"%wKP
KB~&mLr4%#
Event Ts
B~&mLrP/xX|}]DG event Ts#KTsGZi0w._P9CD#{u
?Ts(work M conn Ts)D5}#^[N1B~&mLrSU=B~(*,|<
a+B~N}M}]*;* Java Ts"+|Gf"Z event TsP#IT9CZi0
w._P&m work M conn TsD`,=(CJ Event Ts#
B~&mLr Hookj<M(CB~&mLr<_P Hook !n(,dPIT(e Prolog"Epilog M
Shutdown Request Hook#ki0w._Zt/MXU1KP Prolog M Epilog Hook
;N;,,b)B~&mLr Hook Z?N&m3vB~1<a4P#
PrologZ?N&m3vB~1,K Hook WH4P#
EpilogZ&m?vB~Da2,K Hook ns4P#
XUks
KPKzk#
B~&mLrYw3d
Yw3d!n()z(eZSU=B~1*4PDu~Yw/#bG(}9C0Yw
3d1PmPDmSBDYw3dn4%4(Yw3dn4jID#b)0Yw3d
n0IT4UyZ{D==4|{,"RIT9CPma)DrOMrB }74%4X
F|GD3r#
":B~&mLrDT/P*?NwC;v0Yw3d1n,SPmD%?*<,r
K|GD3rG\X*D#
1XF+]AK0Yw3dn11,?v0Yw3dn1ITTcvr`vZ 22 3D
:u~;@@#g{0u~1@@* true,r4PC0Yw3dn1D True !n(P
(eDNNYw#g{0u~1@@* false,rXF+]A False !n("4PC!
Z 2 B IBM Tivoli Directory Integrator En 21
n(PDYw#g{*K0Yw3d1nhCD!!n,"Rg{u~(;vr`
v)@@* true,r_g{%vYww* false @@a{Da{44P,rB~&m
ZjI10PmODYws#9#qr,B~+]AB;v0Yw3dn1#
u~
?v0Yw3dn1<IT_PkdX*D0u~1#g{4(e0u~1,rXF<
U+]A True Yw!n(#qr,I0u~1@@Da{4v(G4P True Yw,
9G False Yw!n(PDG)Yw#u~>mITG0r%u~1r0E>u~1:
r%u~
*za)K;vT0r,dPITZSB~45XD5(f"Z event u?T
sP)Mza)D5.dhC;v%dYw(Equals"StartsWith"Contains H)#
KT0rP9P!nCTT%ds4MXFxVs!4#
E>u~
1z&m0E>u~11,53aa);vD>`-w0Z(ITy]h*w
{s!)#z4(DE>XkC<{ True r False 5nd ret.value,|a4
}49B~&mLr+XF+]A True r False Yw!n(#;}\Y9C
|,zIT!q`4E>Tcd(eFw fmatch() D/},1B~&mLrh
*T0u~1@@1awCC/}#
":ZbVivB,zXk5X<{ True r False 5,Mg,z&mH0h
vD|r%D ret.value =(#
xR,g{!qK%dNN4!r,r1AYP;vu~* true(_- OR)1u~P
m@@* True#qr,XkyP0u~1<* true T9Pm@@* True(_-
AND)#
"RgH0a=D,UDu~Pm<U* True#
Yw
Yw(egN&m;vB~#NN0Yw1!n((True"False M On Error)<I
T|,cvr|`Yw,|G@NITGBPPDNN;v:
":+w3v0Yw1Ii4ddCN}#
&Cbvw
h*vDZ;~BMGy]zG*bvdkw9Gq=/dvw,+A/4=
=hC*Ar4#g{z*bvdk,r+bvwdkN}hC*a)VZw
DTs#bXkG3V`MD String"StringBuffer rdkw,qr;axPb
v#bvDa{ITGzZbvwdvN}P(eDu?Ts,r(Z1!i
vB)G event u?Ts#TZ4==(dvbv),rbvwdkGz!q
Du?Ts,r event Ts#ZN;ivB,bvwdv<ITGdvw(}
g,TCP WSV),ZKivBQbvDVZw4kCdv#qr,zZbv
wdvN}P8(DtTrXThC* String 5#g{z+bvwdv8(*
entry.myParsedOutput,rZ event u?TsP9C String 5(Qq=/D
dv)4(KtT#
(FE>
}g,}C event M task Ts,CE>zk`4zT:D(F&m#
22 IBM Tivoli Directory Integrator 5.2:C'8O
*"B~Ts
+B~TsDZ]4kB~&mLrU>D~#
>}XT/tT
b9z\;Sevent u?TsP>}tTMXT#kND:tT/XT{F;#
KPi0w._
KP8(Di0w._#boP;vj"Pa)B~TsD4!r,CT+B
~Tsw*u< work u?(IWE)+]Ai0w._#g{hCKH}jI
j>,r&maZKYw&H}1=wCDi0w._jI,;s9C`XD
5X5hCXT AssemblyLine.result"AssemblyLine.error M
AssemblyLine.stats#y]i0w._P"zDiv,I\;hC3)X
T#
":zIT8(*"MAi0w._D,Sw#kND6IBM Tivoli Directory
Integrator 5.2:N<8O7PD:(KP1a)D),Sw;#
hCXT/tT
KYw9z\;ZB~TsPhCXTrtTD5#kND:tT/XT{
F;#
U9&mLr
9C8(D{"#9B~&mLr#
tT/XT{F
1z8(3vu~D5r3vYwDN}1,IT9CB~TsPDtTMXTD{
F#g{{FT entry. *<,rY(|GB~TsDtT,qr|GdXT#=Kx
P}E(″)DV{.G#?"4-y9C#
E>`F
IBM Tivoli Directory Integrator rdC'a)K_HinD}f,|ITS IBM Tivoli
Directory Integrator0dC`-w1DC'gfX~(F,2IT(}(F_-DE>`
F4(F#d;C'gfX~a)KZO_6pXF}]wD=(,+E>`FrC
'a)KZNN6pXF}]wD8uNN=f(|(Xhj< IBM Tivoli Directory
Integrator &m)D\5TsPa)KXb/}TZi0w._u?OXj"x}
,SwT0t/BDi0w._rB~&mLr#
IBM Tivoli Directory Integrator a)KTm`E>`FoTD'V#zITZdC... !
n(P*{vi0w._!q0E>oT1#g{|DCoT,kG!ba0l
Prolog"Epilog"yP,Sw Hook M0tT3d1P9CDzk#|;a0lNNC
E>oT`4D,Swrbvw,+|a0l|GD Hook(i0w._$wwD)
9)#
kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>oT;Tq!|`
PX IBM Tivoli Directory Integrator PgN'VE>`FDE"#
Z 2 B IBM Tivoli Directory Integrator En 23
XFi0w._Dw
Hook G IBM Tivoli Directory Integrator DZ(T/P*PDI`LP>c,dPzI
TSkT:D_-#B~&mLr"i0w._M,SwP<P Hook#}g,g{zk
*j+x}rXBt/i0w._Dw?V,(#ITS,SwPD Hook 4PKY
w:
system.ignoreEntry()vT10,Sw"Lx&mB;v,SwPDVP}]u?#
system.skipEntry()j+x}(EB)u?,+XF5XAi0w._D*<"S10|zwq!
B;vu?#
system.restartEntry()Si0w._D*7XBt/,?F10|zwXB9C10u?#
system.skipTo(V{.{F)x}8(D,Sw#
system.abortAssemblyLine(V{.-r)IZ8(Dms{",l#U9{vi0w._#
":g{Z Error Hook PECNNzk"R;U910Di0w._rB~&mLr,
r&maLx,x;\zgN=o Error Hook#bb6EZE>PuAvTo(m
s#rKg{k**@<BmsD-r,kqXli error Ts#
H0PmPhvD=(IT4wG goto od,r*K hook P;YKP|`Dzk#
}g:
system.skipEntry(); // Causes the flow to change// This next line is never executed.task.logmsg("This will never be reached");
N1h*E>`F
1h*ri0w._rB~&mLrmS(F&m1,h*E>`F#E>`FIT
PyozD>}|(:
v 3vdvtTD5h*y];vr`vdktT4Fc(tTYwrFc)#
v k*;&mkX(u~/%dDu?(}]}K)#
v h*(fr|}^'D}]5(}];BTrP'Tli)#
v k*Xhz*9CD,SwD|BYw(wXF)#
v k*Zi0w._t/.0KP;)u</}L(u</)#
TOa=D?Viv(9P\`d|4a=Div)<h*E>`F#
+E>`F/I=bv=8P
gQ-5wD,^[N1h*Z/Ibv=8P(F&m,<I9CE>#9C IBM
Tivoli Directory Integrator DnQ5y+bV(F&m.V*=v`p:tT*;Mw
XF#
24 IBM Tivoli Directory Integrator 5.2:C'8O
":b;G<(,"G53?F4PD^Frfr#Z}]wPD3vIj6c(}
g,NN&m*<0"&mX(u?0""zJOsH);I\bXh*(F}
]&m,rK(}+zkECZ!I\?|KcDX=,IT9bv=8|WZ
mbM,$#
&mtT*;DOm;CGZtT3dP,0dk1M0dv1<I#g{h*Fc
E>`F_-ri0w._BNPd|,SwXhDBtT,nQ5yGZdk3d
PjIKYw(g{I\)#r_,g{Xk*K%vdv4*;tT,rzIT(}
+b)tTECZ`X,SwDdv3dP4\bX(ZdvD*;cl$wu?T
s#
d|`pD(F_-MwXFnCZT/$wwPh*C_-Dc&wCD Hook P5
V#S IBM Tivoli Directory Integrator0dC`-w1IT=cXCJb)XFc#5
V(F&m;h*6p}7DXFc"Z`&D`-0ZPmSE>#
i0w._E>i~9*za)K4(T:D(F&mDX=,"9z\;+zkX
BECZi0w._P#d;ZbTMwTD}LP51X9C0E>i~1,|G
9GITZzzdCPg]X*G+#;hG!*ezX|{zDi~,"ZE>>
mP|,3vD5T5w(rd{KT0zT:Ts31XkYNi4zDzk1)
*NZ0E>i~1P5VK_-,x;GZtT3dr Hook P#
"R}7j6J1DXFc(dkE>DX=),M+E>DwCr^F*;2Gk
XFc`X*D%v?j,b=_,y<\X*#g{z9_-%*#V`%@",
r|GIYCD8J|sx1i~Zd|OBDPXBErrXC1|GI\@#D
8J|!#9(IYCDzkD;V=(G(}ZE>b(r Prolog Hook)P4(T
:D/}45V519CD_-,x;G4FM3y`,zkA`v;C#
bo\aK;)nQ5y,kzZ9(bv=81wG:
v Z0tT3d1P4PtTYw#
v ECwXF(}K"7O"V'H)Hook "ZX*D;CECi0w._E>i~#
v !I\`X9CT/P*(}g,i0w._$wwM,Sw==)#
v (}9i0w._#VrLM/P4r/zDbv=8#
v +-#9CD_-ECZ/}(}g,0E>b1)P#
v <GXC#
5CYNa0DG,d;H0hvD=(<GnQ5y,+zI\av=Xk+kQ
("D<(Div#g{GbViv,fE1dD}%,zDbv=8D5TZ,$
Ma_zD$wGAXX*D#
E>`FgN0l4P
IBM Tivoli Directory Integrator }f+*Km``MTs5},ITSB~&mLrr
i0w._PC'4(DE>CJ"A!M^D|G#b)Tsm>Nb1LB~&
mLrri0w._M{v IBM Tivoli Directory Integrator 73D4,#(}^DN
bb)Ts,IT^D IBM Tivoli Directory Integrator 73"rx0l/I}LD4
P#
Z 2 B IBM Tivoli Directory Integrator En 25
":|DITJCZi~D5}"i0w._rB~&mLr#2ITTIKPN}
(}g53r Java N})xP|D#9ITTdCxP|D#ZbVivB,d
CTsDB5}a43b)dC|D#
PX+VTsD|`E",kNDw* IBM Tivoli Directory Integrator z7;?V|
,D Javadocs(k*A root_directory\docs\api\com\ibm\di)#
ICDyP`M5}DhvITZ20m~|PR=#
(}KbQ+*D`MSZ,zIT|CXmb IBM Tivoli Directory Integrator }f
D*X0d9CDoT#
9Cd?
+;&mD}]Dj<]wTs(u?Ts)kz!qDE>oTa)xzDd|(
Cd?M}]`MxV*4G\X*D,zT:4(12*xPbVxV#MZE>
`F0ZPITECDZ]xT,zD4lTME>oTD&\GvPD<x#+
G,1Z}]wOBDPYw}]1,Xk"b"{Cu?TsDa9#
u ? T s x P t T , b ) t T > m M G } ] 5 D ] w # t T 5 > m M G T s
(java.lang.String"java.util.Date M|4SDa9)#tT5uAITGm;vxP|T:
DtTM5D/ODu?Ts#IBM Tivoli Directory Integrator D$wGmb}]gN
f"ZQ,SD53P,T0gN+b)>z`M*;*53T:D}]m>(Java T
s)rgN+53T:D}]m>*;*b)>z`M#
g{zr*3v,SwD#=!n(,%w,SA}]44%,;s%wA!B;v
u?4%#za4=Z}]4PR=DZ;vTsP"VDtT#j"P Java `DG
;PT>K,SwgN+>z}]`M*;*53DZ? Java m>#%w"V}]4
D#=4%I5X*3)}]4Pz}V[DTs(eDtTDj{(e#|{*>
Xo(D;PT>K}]4CTm>b)5x9CD}]`M#
g{*@tT5D`,MITI&CJ"bMbv5#}g,g{ java.lang.String tT
|,z#{Cw!cD!c5,rXkWH+bv5V$*;((}E>oTD=
()*3V}V}]`M#
Z4(d?r}L,x|Gk/I}LPD}]wMICD+VTs;1S`X1,
&CTB-r:zITyw"9Cy!qDE>oTJmDNNd?(Ts)#b)d
?DC>Gozz5VkXFc(zZdP`FE>)`X*DX(?D#d?Xk
;w*Y1:ex,R;T<0l IBM Tivoli Directory Integrator 73D4,#
E>`FDXFc
i0w._PDE>`F
i0w._ hook: b) hook IZi0w._D Hook !n(PR=#b) Hook
Z?vi0w._KP1,rZXUksDiv(3vb?xLQf*i0w._X
U)B<;KP;N#+G,g{z`Nt/i0w._(}g(}9CB~&mL
r),r2`Nt/K hook#
26 IBM Tivoli Directory Integrator 5.2:C'8O
E>i~
}KmS,Sw.b,9IT(}%wi0w._PD}]w!n(BfDmSE>
i~4%4ri0w._mS0E>i~1#0E>i~1*i0w._&mD?vu
?(}g,Sw)t/;N,"RITECZi0w._PDNNX=#
":49zZi0w._P+0E>i~1ECZ|zw.0,T;aWH&m|z
w#
,SwPDE>`F
dk3dMdv3d
Zb)!n(P4P(FtT3d#!qtT1,zXk!q_63d4!r
"Z`-0ZPdkzDE>#kG!,ZjIyPX*D&m.s,Xk+
o=Da{53h ret.value,}g:
...ret.value = myResultValue;
,Sw HookHook *za)l&"zDX(B~D=(,"2G,SwDy>&\#Z`F
hook 1,zP(CJ+V IBM Tivoli Directory Integrator Ts,;}P)j
<TsI\;GyP hook P<ICD#PXY1TsICTDj8E",kN
D6IBM Tivoli Directory Integrator 5.2:N<8O7PD:i0w._M,S
w==wL<;#z9ITj+XF IBM Tivoli Directory Integrator 73"i
0w._",Sw"u?T0tT#Hook *za)CZ(F}LwDwVXF
c#kNDZ 31 3D:Hook;#
(}`FE>hCZ?N}
IT(}`FE>*,SwhC0Z?N}1,}gTBD:
myConnector.setParam ( "filePath", "examples/scripting/sample.csv" );
bGzZ Prolog P(#vDBi,+G1i0w._2Zt/1|I\\PC(Yhz
#9"XBu</,Sw)#
myConnector.terminate()myConnector.setParam ( "filePath", "examples/scripting/sample.csv" );myConnector.initialize(null);
ZB~&mLrP`FE>
XZZB~&mLrP`FE>DE"|,Z6IBM Tivoli Directory Integrator 5.2:N
<8O7PD:B~&mLr`M;P#
ZbvwP`FE>
ZbvwP`FE>5JOG8(}`FE>5VT:Dbvw#K}LDhv|,
Z6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>bvw;P#
HO JavaScript V{.
g{Zi0w._P9C JavaScript,rZFcrHO1I\v=;)fVDP*#bG
IZ JavaScript D3)G<U1[DP*T0 Java M JavaScript Tsk=(((#Z
o(MP*O<s;`,).dmfD`FT#
Z 2 B IBM Tivoli Directory Integrator En 27
ZTV{.xPHO1IT4=fVP*D;v>}#JavaScript V{.IT1SZE>
PHO#;x,g{P=v Java V{.,rXk9C java.lang.String /}4xPHO,
}g:
jStringA.equals(jStringB)
*9BidC4S,JavaScript 9z\;(}+ Java V{.*;(r56)* JavaScript
V{.PIHODm>,41SHO Java M JavaScript V{.#B5O,1mo=r
FcPvV=V`MDV{.1,JavaScript 9|G<I* JavaScript V{.#rK,
;V2+D=(I\GZHO.0rHOD}LPrV{.d?=SUV{. ″″#
BmT>KHO;,d?1DP*#yP#?"V{.DVM JavaScript V{.Ts<
_P`,D5:″test″#
var a = ″test″;
a== ″test″
True
var a = ″test″;
var b = ″test″
a== b
True
var c = new String(″test″);
c == ″test″
True(r*Ts c ?F*M* JavaScript V{
.)
var c = new String(″test″);
var d = new String(″test″);
c == d
False(4(K=vV{.Ts,+Gb=vT
s;`,#|G|,vI_P`,5DV{
.,+ Java Ts>m;IT1SHO#Xk9
Cs .equals() D/}4HO|GD5#)
mbb;c\X*,r*yPu?Ts<_P getSt r ing( ) =(,C=(5X
java.lang.String Ts,x;G JavaScript nPDV{.#Y(TBod:
var w = system.newEntry();w.setAttribute("x","test");w.setAttribute("y","test");x = w.getString("y"); // really same as x = new String("test")y = w.getString("y"); // really same as y = new String("test")
bxvTBa{:
x == y False(r*b)G=v;,DTs)
x == ″test″ True(r* x ?F*M* JavaScript V{.)
var a = ″test″
x == a
True(kO;=HOPD-r`,)
(x + ″″) == (y + ″″) True(r*+ ″″ =SA Java TsI+d*;
* JavaScript V{.#)
rK,}GzKb9CDV{.TsD`M,qrI\<U#{ZHO.0mS ″″ r
+|G?F*M* JavaScript V{.T9HO2+xP#
28 IBM Tivoli Directory Integrator 5.2:C'8O
/f:
TBod:
n = null;n = n + "";
Z JavaScript P9CV{.d? n _P5 ″null″#rK,g{zP=v null d?,n1
M n2
n1 == n2
True
n1 + ″″ == n2
False(r*HO ″null″ M null)
n1 + ″″ == n2 + ″″True(r*HO ″null″ M ″null″)
rK,1mS ″″ ?F*M1,I\h*Z=_DHOKc{O<mS ″″#
CJT:D Java `
zITS IBM Tivoli Directory Integrator r\Z?CJT:D Java `,;*|GG+
C`M=(#b)bXkb0* .jar r .zip D~,;sECZ IBM Tivoli Directory
Integrator jars ?<P,nCZzT:DS?<P#z9IT9C CLASSPATH 73d
?r Java KP173)9D~P,+;Dx9Cb=V=(#v10kLrZ0kz
T:D`.0vI0k IBM Tivoli Directory Integrator `1,b)=(aCzST:
D`PwC IBM Tivoli Directory Integrator `#
g{z*S0dC`-w1KP~qw,rXkXBt/0dC`-w1,;s|E
*@ jars ?<MS?<PDB`#
+ jar D~ECZ jars S?<Ps,IT4(C`D;v5}TcZ IBM Tivoli
Directory Integrator P}CC5}#
9C IBM Tivoli Directory Integrator0dC`-w1T`xP5}/
9C0dC/@w1D Java Library D~P(|GX(ZdCD~D)4ywzD`#
;P1`_P1!9l/}(;h*N}D9l/})1,bEapwC#mS`T
s1,Xk8(=vN}:E>Ts{F(E>`Fd?D{F,|GzD Java `D
;v5})M Java `{#}g,zITP;v0E>Ts{F1mycls,x Java `I
\G my.java.classname#rK;*53TsIC,r mycls Ts2MIC,r*5
3Ts5JOG com.ibm.di.function.UserFunctions Java `D5}#
":
b<B*?vi0w._MB~&mLrKP5}/zDTs#g{;#{b
y,"Rg{z|264Uhs5}/,rkNDB;Z#
`DKP15}/
g{zk*Z4PDX(c&5}/`rzD`;P1!9l/},r_TZ;_P
1!9l/}D`,rh*ZKP15}/`#}g:
crytoLib = new Packages.com.acme.myCryptoLib();
Z 2 B IBM Tivoli Directory Integrator En 29
Z JavaScript P`FE>
9Cj< Java `
Y(zk*9Cj< java.io.FileReader,r9CTBE>:
var javafile = new java.io.FileReader ( "myfile" );
9CGj<`
Xk9C Packages root Tcr\*@C`GGj<D#}g,9CTBE>45}/
;vFw my.Filereader D`:
var myfile = new Packages.my.FileReader ("myfile");
9C;P new java.* DoT`FE>
1z9C;'V new java.* 8nDoT`4E>1,IT9C IBM Tivoli Directory
Integrator PR=D newObject (className) =((53Ts):
var f = system.newObject ("java.io.File");
":ZbVivB,z^(9CN}wC`9l/}#
ZE>`FP9C~xF5
Z4(DE>`FzkP,~xFtTw*VZ}i5X#boG;v JavaScript >}:
var x = conn.getObject("objectGUID");for ( i = 0; i < x.length; i++ ){
task.logmsg ("GUID[" + i + "]: " + x[i]);}
K>}+Z -128 = 127 .dd/D;)}V4kU>D~#zI\#{T}]4P;
)d|Yw#g{Q-S,SwA!KTVZ}iN=#fD\k,rITCTBz
k+d*;*V{.:
password = system.arrayToString(conn.getObject("userpassword"));
ZE>`FP9CUZ5
15=9CUZ1,RGG8 java.util.Date D5}#9CN;ICDE>oT,zIT
5VT:DCZ&mUZDzF#b;G#{D5y#
IBM Tivoli Directory Integrator E>`F}f*za)KCZbvUZDzF#53T
s_P;v parseDate(date, format) =(,ZNN1r<ITCJC=(#
":1zq! java.util.Date D5}1,IT9Cj< Java bM`)9zD&m#
boG&mUZD;vr% JavaScript >}#ITZNNE>`FXFcECMt/K
zk:
var string_date1 = "07.09.1978";var date1 = system.parseDate(string_date1, "dd.MM.yyyy");
var string_date2 = "1977.02.01";var date2 = system.parseDate(string_date2, "yyyy.dd.MM");
task.logmsg(date1 + " is before " + date2 + ": " +date1.before(date2));
30 IBM Tivoli Directory Integrator 5.2:C'8O
KE>zkWH+=vUZ5(&Z;,q=)bvI java.util.Date#;s|9Cj<
java.util.Date =( .before() 7(Z;vUZ5}GqZZ~v5}.0vV#CE>
Ddvfsr!=U>D~#
ZE>`FP9C!c5
TB>}]>Z4(DE>`FzkPgN9C!c5#yPTB>}<GZ JavaScript
P5VD#d;9Cd|8vE>oTITX4`,D>},+o(I\a;,#T
BDr%E>+!c53h=vd?TR=|GD=y5#ITSNNE>`FXF
ct/Kzk#U>D~dv*0r = 3.851#
var a = 5.5;var b = 2.2;var r = (a + b) / 2;task.logmsg("r = " + r);
B;v>})9bvr%DE>#YhZzDdk,SwPP;vFw ″Marks″ D`
5tT,||,m>!c5(#{Div)DV{.5(java.lang.String)#KtT3
d*dv,SwPFw ″AverageMark″ DtT,|#f ″Marks″ tT5D=y5#
TBG ″AverageMark″ tTD0_63d1P9CDzk:
// First return the values of the "Marks" attributevar values = work.getAttribute("Marks").getValues();
// Zero out counter and sum variablesvar sum = 0;var count = 0;
// Loop through the values, counting and summing themfor (i=0; i<values.length; i++){
// use the Double() function to convert value to numbersum = sum + new Number(java.lang.Double(values[i]));count++;
}
// If count > 0, compute the averagevar average = (count > 0) ? (sum / count) : 0;
// Return the computed averageret.value = average;
>>}PDPDwCMG java.lang.Double(values[i]),|CZ+10Q("w}D
″Marks″ 5*;*.sIZ=y5FcP9CD}V5#
>}
k*A IBM Tivoli Directory Integrator 20D /examples/scripting S?<#
Hookm` IBM Tivoli Directory Integrator i~,}gi0w._"Z 20 3D:B~&mL
r; M,Sw(kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:,S
w;),<_P Hook T9z\;)9"|Drj+XhCi~DT/P*#Hook 9
z\;(F/Ibv=8DP*To=NbnH,|(DP*}g:
1. Xh3v,SwDy>}]CJ((kNDZ 32 3D:Xh Hook;)#
2. l&S}]4SU=Dms#}g,Iterator ,Sw_P;v Iterator Error hook,
ITTdxP`LTG<r"MPXdkmsDJ~#
Z 2 B IBM Tivoli Directory Integrator En 31
3. ^Di0w._w(}gx},SwrXBt/-7)#
(#Zi0w._D&mZdw*wXFD;?VwC Hook#g{vZ3V-rzk*
wC3v hook,k9CTB JavaScript |n:
myConnector.trigger("hookName");
dP myConnector G3h,SwD{F,x hookName GC Hook DZ?{F#Hook
DZ?{F;ak0dC`-w1P4=D Hook {F`l}#
,Sw Hook PP;vFw thisConnector DXbd?,|<U}C10D,Sw#b
9(CE>D9C|*=c,r*z;h**@,SwD{F#
tCr{C Hook1!ivB,yP Hook <G{CD#;)rX(D Hook mSK;)zk,0dC`
-w1Ma+C Hook jG*QtCD#g{;#{9C3v Hook,rIT!{!P
C Hook DQtCj>#b9z\;+zk#tZ Hook P,;)Ts#{Y9Cb)
zk,9IT9C#
g{ Hook jG*tCD,r|GtCD,49|;|,zk2GgK#bZms hook
Pa\X*,IBM Tivoli Directory Integrator ITvy]QtC hook DfZ+msS
*Q&m#
Xh HookTZ?v,Sw==,<P;vX(Z==DXh Hook#g{tCKK Hook,rZw
XFLxi0w._PDB;v,Sw0,WHwC Before Execute Hook(g{|
QtC),;swCXhX(Z==Yw Hook#}X*1awCms Hook Tb,;
awCd| Hook#
TZ&Z Update ==D,Sw,9P Override Add M Override Modify Hook#
Z,SwQv(|+4P0^D19G0mS1Yw(y]}]4PGqQfZ%d
u?).s,awC`&D Hook(g{|QtC)#C Hook jIs,wXFLx AfterUpdate M Update Successful Hook#
ms Hookms Hook 9z\;l&I}]4"Yw53M IBM Tivoli Directory Integrator zI
Dms#}g,|zw_P;v Iterator Error Hook,ITTdxP`LT&mdkm
s,Ms^Di0w._w(}gx}#BDi0w._);y#kND6IBM Tivoli
Directory Integrator 5.2:N<8O7PD:i0w._M,Sw==wL<;Ti4N
1wCms Hook(T0wCDvms Hook)#
Zms Hook P,z(#k*limsu?TsTi4<B&m-}ms Hook D-
r#msTsGu?`MDTs(Ms work M conn),"R||,Km`hvms
DtT#b)|,KTBmstT:
status ms4,(}g,fail)#
connectorname|,"zmsD,SwD{F#
32 IBM Tivoli Directory Integrator 5.2:C'8O
operation}4PDYwDZ?{F#
exceptionj+Dl#D>#
messagems{"#
class ms(l#)`M,-#a>zDv53}pCms#
1,SwP"zJO1,+"zTBB~:
1. msF}wS 1#
2. wCX(Z,Sw==D On Error Hook(Connector_mode Error)#
3. g{C Hook 4tC,rwCC,SwD Default On Error Hook#
4. g{4tC Hook 6=Cms,ri0w._U9"RCmsT>ZU>P#
5. g{tCKms Hook,ri0w._LxB;v,Sw#g{#{d|P*,rX
k9CZ 3 3D:i0w._;PhvD;V=(+d`4= Hook P#
Hook Pm
,Sw
b) Hook TyP,SwG+2D#kND6IBM Tivoli Directory Integrator 5.2:N
<8O7PD:i0w._M,Sw==wL<;Ti4N1wC Hook#ZKT>Bf
DmGCz*@ Hook DZ?{F(g{zk*9C trigger() =()#
Prolog - Before Initialize(before_initialize)
Z"Tu</,Sw.0wC#
Prolog - After Initialize(after_initialize)
Z,SwQu</.swC#
Prolog - On Error(initialize_fail)
,Swu</'\1wC#g{4tC Hook 6qms,ri0w._l#U
9#g{tCK Hook,r|O(aI!J1DYw,bI\al#U9i0w
._#
Before Execute(before_execute)
Z?v,Swt/0wC#
Default On Success(default_ok)
1,SwYwI&1,ZX(Z==D Success Hook .swC#
Default On Error(default_fail)
1,SwYwD}LP"zms1wC,}GtCKX(Z==D Fail Hook,
bVivBaWHwCX(Z==D Hook#
Epilog - Before Close(before_close)
Z,SwXU.0wC#
Epilog - After Close(after_close)
Z,SwXU.swC#
Epilog - On Error(close_fail)
i0w._jI.s,1,Sw4\XU1wC#
Z 2 B IBM Tivoli Directory Integrator En 33
b) Hook TZ&Z Iterator ==D,SwGICD:
Prolog - Before Selection(before_selectEntries)
Z,Sw!qu?w*u</D;?V.0wC#
Prolog - After Selection(after_selectEntries)
Z,SwQ!qu</PDu?.swC#
Override GetNext(override_getnext)
K Hook 9z\;XhX(Z==DYwM Hook w#
Iterator - Before GetNext(before_getnext)
Z,SwT<q!B;n.0wC#
Iterator - After GetNext(after_getnext)
Z,SwOQI&4P GetNext .swC,+ZjItT3d.0#conn u
?TsICZlir|DS,SwlwDtT#
GetNext Successul(get_ok)
bG Iterator ==DX(Z==D Success Hook,Z Default Success .0
wC#
Iterator Error(get_fail)
bG Iterator ==DX(Z==D Error Hook,Z Default On Error .0w
C#
TB Hook TZ&Z AddOnly ==D,SwGICD:
Override Add(override_add)
K Hook 9z\;XhX(Z==DYwM Hook w#
AddOnly - Before Add(before_add)
Z"T4PmSYw.0wC#
":K Hook GZ AddOnly M Update ==.d2mD#
AddOnly - After Add(after_add)
ZI&mSu?.swC#
":K Hook GZ AddOnly M Update ==.d2mD#
Add Successful(add_ok)
bG Add ==DX(Z==D Success Hook,Z Default Success .0w
C#
AddOnly Error(add_fail)
bG Add ==DX(Z==D Error Hook,Z Default On Error .0wC#
TB Hook TZ&Z Delete ==D,SwGICD:
Override Delete(override_delete)
K Hook 9z\;XhX(Z==DYwM Hook w#
Delete - Before Lookup(before_lookup)
Z"T4Pu<i/.0wC#
":K Hook GyP4Pi/D==(Lookup"Delete M Update).d+C
D#
34 IBM Tivoli Directory Integrator 5.2:C'8O
Delete - On No Match(delete_nomatch)
1`vu?%d04Su~11,g{K Hook QtC,r,SwwC|,q
rwC On Error Hook#
Delete - On Multiple Entries(delete_multiple)
1`vu?%d04Su~11,g{K Hook QtC,r,SwwC|,q
rwC On Error Hook#kND6IBM Tivoli Directory Integrator 5.2:N<
8O7PD:i0w._M,Sw==wL<;Tq!PXgN!qX(u?
TLxYwDhv#
Delete - Before Delete(before_delete)
Z"T4P>}.0wC#K1,conn u?TsICZlir|D(}u<i
/S,SwlwDtT#bMG Delete ==fZZdk3dPD-r#
Delete - After Delete(after_delete)
Z>}u?.swC#
Delete Successful(delete_ok)
bG Delete ==DX(Z==D Success Hook,Z Default Success .0
wC#
Delete Error(delete_fail)
bG Delete ==DX(Z==D Error Hook,Z Default On Error .0w
C#
TB Hook TZ&Z Lookup ==D,SwGICD:
Override Lookup(override_lookup)
K Hook 9z\;XhX(Z==DYwM Hook w#
Lookup - Before Lookup(before_lookup)
Z"T4Pi/.0wC#
":K Hook GyP4Pi/D==(Lookup"Delete M Update).d+C
D#
Lookup - On No Match(lookup_nomatch)
1`vu?%d04Su~11,g{K Hook QtC,r,SwwC|,q
rwC On Error Hook#
Lookup - On Multiple Entries(lookup_multiple)
1`vu?%d04Su~11,g{K Hook QtC,r,SwwC|,q
rwC On Error Hook#kND6IBM Tivoli Directory Integrator 5.2:N<
8O7PD:i0w._M,Sw==wL<;Tq!PXgN!qX(u?
TLxYwDhv#
Lookup - After Lookup(after_lookup)
R=u?.swC,+ZjItT3d.0#conn u?TsICZlir|D
S,SwlwDtT#
":K Hook GZ Lookup M Update ==.d2mD#
Lookup Successful(lookup_ok)
bG Lookup ==DX(Z==D Success Hook,Z Default Success .0
wC#
Z 2 B IBM Tivoli Directory Integrator En 35
Lookup Error(lookup_fail)
bG Lookup ==DX(Z==D Error Hook,Z Default On Error .0w
C#
TB Hook TZ&Z Update ==D,SwGICD:
Before Update(before_update)
Z"T4Pu<i/.0wC(T7(4PmS9G^DYw)#
Update - Before Lookup(before_lookup)
Z"T4Pi/.0wC#
":K Hook GyP4Pi/D==(Lookup"Delete M Update).d+C
D#
Update - On Multiple Entries(update_multiple)
1`vu?%d04Su~11,g{K Hook QtC,r,SwwC|,q
rwC On Error Hook#kND6IBM Tivoli Directory Integrator 5.2:N<
8O7PD:i0w._M,Sw==wL<;Tq!PXgN!qX(u?
TLxYwDhv#
Update - After Lookup(after_lookup)
R=u?.swC,+ZjItT3d.0#conn u?TsICZlir|D
S,SwlwDtT#
":K Hook GZ Lookup M Update ==.d2mD#
Update - On Modify - Override Modify(override_modify)
K Hook 9z\;Xh^DYwM Hook w#
Update - On Modify - Before Modify(before_modify)
Z"T4P^DYw.0wC#
U p d a t e - O n M o d i f y - O n C o m p u t e C h a n g e s - O n N oChanges(modify_nochange)
1&Z Update ==D,Sw("hCK0Fc|D1j>)(f;P*|BD
|D1wC#
Update - On Modify - On Compute Changes - Before ApplyingChanges(modify_apply)
Z4P^D.0"4wC#v1hCK0Fc|D1j>1EwCK Hook#g
{4lb=|D,rwC On No Changes Hook#
Update - On Modify - After Modify(after_modify)
Z^Du?.swC#
Update - On Add - Override Add(override_add)
K Hook 9z\;XhmSYwM Hook w#
":K Hook GZ Update M AddOnly ==.d2mD#
Update - On Add - Before Add(before_add)
Z"T4PmSYw.0wC#
":K Hook GZ Update M AddOnly ==.d2mD#
36 IBM Tivoli Directory Integrator 5.2:C'8O
Update - On Add - After Add(after_add)
ZI&mSu?.swC#
":K Hook GZ Update M AddOnly ==.d2mD#
Update - On Add - After Update(after_update)
ZI&|B(mSr^D).swC#
Update - Update Successful(update_ok)
bG Update ==DX(Z==D Success Hook,Z Default Success .0
wC#
Update Error(update_fail)
bG Update ==DX(Z==D Error Hook,Z Default On Error .0w
C#
TB Hook TZ&Z CallReply ==D,SwGICD:
Override CallReply(override_callreply)
K Hook 9z\;XhX(Z==DYwM Hook w#
CallReply - Before CallReply(before_call)
ZxP~qr53wC.0wC#
CallReply - After CallReply(after_reply)
ZSQwCD~qr53SU=&p.s#
CallReply Succesfull(callreply_ok)
bG CallReply ==DX(Z==D Success Hook,Z Default Success .
0wC#
CallReply Error(callreply_fail)
bG CallReply ==DX(Z==D Error Hook,Z Default On Error .0
wC#
i0w._
b) Hook GyPi0w._+CD,"RIZ?vi0w._D Hook !n(PR
=#Zi0w._D?NKPP|G<;4P;N,}GzvI`Nt/Ki0w.
_(}g(}9CB~&mLr)#
Prolog - Before Init.(prologinit)
K Prolog Z,Swu</.0KP,rK|G;vcZ^D,SwN}DXp
c#}g,g{ZKP1z*@*Z0D~,Sw1P9CDD~{,rIT
CTBDE>+bvD~+]A,Sw:
myConnector.connector.setParam("filePath",myFileNameVariable);
Prolog(prolog)
ZyP,Sw<QI&u</.st/Dzk#bv;CJKywZi0w.
_D4PPh*D+Vd?(}g,F}w"=y5H)#
Dataflow
":b;G;v hook#
boi0w._}/d,SwM0E>i~1#kND6IBM Tivoli Directory
Integrator 5.2:N<8O7PD:i0w._M,Sw==wL<;M:E>,
Sw;#
Z 2 B IBM Tivoli Directory Integrator En 37
Epilog(epilog)
ZyP,Sw4P|GD Close Hook MYw.0,Kzk*i0w._D?N
KP4P;N#
Epilog - After close(epilog2)
ZyP,SwjI|GDNq.s,Kzk*i0w._D?NKP4P;
N##{#=GZboME Prolog ?VPVdDyPJ4"#f|G#
Shutdown Request(shutdown)
1i0w._Q;(}g,4T AMC Console r4Tm;v~qw)8>#
91,K Hook t/#KE>9z\;mSe}zkTJHXU9i0w._#
":g{i0w._qCXUks"RKE>*U,rb+<Bms(Kms
ITZ Epilogs P&m)#
Delta/f: g{I\,Xk\b Delta zF#";Gr*|;PpwC,xGr*|a}
k;vBD>XbTc\m,=}L#}(hd|DD}]4I*wSX5PDw}
]4,;sAXX*DG4PQTS}]4xPDyP|D(}g,Delta f")T(*
Delta zFb)|D#qr,IBM Tivoli Directory Integrator ,$DY1 Delta }]b
+dC;;B,R Delta &\'\#
!I\tC(,SwD Update ==PD)Fc|D&\,x;*9C Delta &\#K
&\9a^FT}]4xP4k#
!\gK,I\aP8Nbv=8ksT|Dwv514&#;x,IBM Tivoli Directory
Integrator ^(lb3)}]4PD|D#(#bGr*?j53r4(}g,=fD
~)P;'V|Dlb(r;PQ"<DSZCT|Dlb)#r_I\GK53P;
P0|D,Sw1#bVivBIT9C Delta &\,Tc IBM Tivoli Directory
Integrator IT7(D)u?GBD"Q^DDrQ>}D#
":;ITZ&Z Iterator ==D,SwOdC Delta hC#
Delta zF(}ZFw Delta Table DVCf"(053f"1D;?V)P#V?v
u?D;]>X1>,I*@GqQmS"|Dr>}u?rtT#?Ni0w._
KP1,Delta zF<aHOxP|zD}]M|Z Delta Table PD1>#zITd
C|zwD Delta hCTXFk*+D)`MD|D+]Ai0w._#yPd||D
r;vT#
(;tT
*K9 Delta zF\;(;j6?vu?,Xk8(;v(;tTw* Delta X|V9
C#bGZ,SwDd/?!n(P(}Z(;tT{FN}Pdk(r!q);v
tT{F4jID#KtTXkIZ|zwD0dk3d1PR=,"RHITGS
Q,SD53A!DtT,2ITG-}FcDtT(_6tT3d)#?vtT<X
k_PITm>*V{.(4,|Xk5V toString() /})D5,"RyzzDV
{.5;\* null rUq#g{8(D(;tT_P`v5,raWvms#
z9IT(}CSE(+)+`vtTt*48(|G:
LastName+FirstName+BirthDate
38 IBM Tivoli Directory Integrator 5.2:C'8O
8(*(;tTD`vtTPXkAYP;v|,5#8(KtIvtT1,|GD
V{.5,S*;vV{.,;sCV{.I*(;D Delta j6#*u?9( Delta
X|V1ax};x5DtT(}g,null)#
Delta j>
Delta &\9z\;XFgNZi0w._P5Xu?#g{3vu?;aw*j>hC
.;Da{5X,r Delta &\a,,Xx}Cu?"S,SwLxB;vu?#Delta
f"Pa;1|Bx}Du?#kNDZ 42 3D:Delta f";#
5X4|D
g{j>* TRUE,r5XAi0w._DG4|DDu?#
5XQmS
g{j>* TRUE,r5XAi0w._DGBDu?#
5XQ>}
g{j>* TRUE,r5XAi0w._DGQ>}Du?#1}]4D|z
I&jI15XQ>}Du?#;s Delta zFiz Delta Table Ti4|z
}LPGqPNN4&mD;C#b)u?;O*QSdk}]4P>}#
5XQ^D
g{j>* TRUE,r5XQ^DDu?#
d;;P IBM Tivoli Directory Integrator ICT10T/X&mv?^D,+IT(
}liOfPvDYwk"SE>}/^DYw4+K&\mS=zDbv=8P#
Delta MFc|D
Fc}]4D|DG;v1SK1D}L#HO=vu?(S}]4A!Du?M Delta
1>)1,5XDu?_P;vhC* add"modify r delete DYwk#;s,z
ITy]KYwkXFi0w._,SwDP*#
}g,Yhz#{i0w._&myP}V`MDYw#9(Kbv=8D;V=(
G9C=vdC*&m`,?j53D,Sw#+;vhC* Delete ==xm;vh
C* Update ==#Z Update ,SwD Before Execute Hook PmSTBzk:
if (work.getOperation() == "delete")system.ignoreEntry();
ba9 Update ,Swx}I Delta &\jG* delete DyP$wu?#+`XDz
kEk Delete ,SwD Before Execute Hook P:
if (!work.getOperation() == "delete")system.ignoreEntry();
VZ Delete ,SwavTyP4jG* delete D$wu?#
5Vbv`,&\Dm;v==GC%v,Sw&Z Update r Delete ==#,Sw
D5J==";X*,r*z9CE>4}/|#,SwXkhC* Passive 4,,
by|aIi0w._u</,+";Ii0w._Yw#;sCTBE>+E>i
~mSAi0w._(K>}Y(zD,SwFw myTargetConnector):
if (work.getOperation() == "delete")myTargetConnector.deleteEntry(work)
elsemyTargetConnector.update(work);
Z 2 B IBM Tivoli Directory Integrator En 39
=V=(4P`,DYw,|(wCyP`XD,Sw Hook#
Fc|D
TZ&Z Update ==D,Sw,IT9C;v=SD|DXF&\(9C0,Swj
8E"10qPD;v4!r)#Fc|DCZ9,SwliQ,SD53PVPDG
<k*Z5J4P^DYw.04kDG<75;,#XZgN9CK!nDhvI
TZZ 9 3D:,Sw;D Update ==PR=#
>}
k*A IBM Tivoli Directory Integrator 20D root_directory/examples/deltas ?<#
Delta }L
}]4PFc|DD}Lf0>Xf"D9C,Delta }LZdPf"XZS,SwA!
D?vu?DE"#?NKP Delta }L1,rPF}w]v#S,SwA!D?vu
?<,,10rE;pf"Z Delta Table P#rEDC>ZZ\;lb;Yw*4}
]/;?VDu?#bG(}Z4}]/OjI|zsHOrEjID#PX Delta f
"D|`E",kNDZ 42 3D:Delta f";#
>}u?
Z}]4jI|z.s,Delta Table PxPDrEMZ10rEDNNu?<;O*G
Q>}Du?#v1|zI&jI1GbyD#
^Du?
1S,SwA!3vu?1,Delta }La9C(;tTD5Z Delta Table PiRk
|T&Du?#g{R=%dDu?,r Delta }LHO?vtT(M?vtTD5)
T7(GqQTCu?xP^D#
mSu?
g{4Z Delta Table PR=%dDu?,r+Cu?mS= Delta Table P"4wB
Du?#
4|DDu?
g{,SwPDu?k Delta Table PD3vu?`%d,rCu?;4w4|DDu
?#
Delta Table a9
Delta f"y9CDmI Delta Systable(DS)9I,||,KXZ Delta f"P10
9CD?v Delta Table DE"#Delta Table(DT)|,KXZ,SwPQI Delta &
\A!"&mD?vu?DE"#
Delta SystableDelta Systable(DS)|,KXZ053f"1(CloudScape }]b)P?v Delta
Table(DT)DE"#DS DC>ZZ,$?v DT DrPF}w#DS Da9gB:
P `M hv
ID Varchar DT j6
SequenceID Int SO;NKPpDrPj6
f> Int DS f>(1)
40 IBM Tivoli Directory Integrator 5.2:C'8O
Delta Tableks Delta f"D?v,Sw<h*8(;v(;D Delta j6kC,Sw`X*#b
vj69Cw Delta Table Z053f"1PD{F#Delta Table Da9gB:
P `M hv
ID Varchar j6u?D(;5
SequenceID Int u?DrE
f> JavaObject rP/Du?Ts
53f"
053f"1bvK IBM Tivoli Directory Integrator *VCf"DwVh*"9C
DB2Java(CloudScape)RDBMS w*dWcDf"<u#g{ CloudScape }]bT*
xD==KP,rIT(} IBM Tivoli Directory Integrator ~qwD`v5}2m05
3f"1#g{ CloudScape Z IBM Tivoli Directory Integrator ~qwP6k=KP,
r^(,1kd|~qw2m|#
53f"T IBM Tivoli Directory Integrator i~5VK}V`MDVCf":
v C'XTf"
v Delta Table
v Checkpoint Table
?Vf"<a)KT:D&\"Z(P*T0IwCSZD/O,C'ITS|GD
E>CJCSZ(}g,TVC#fC'D}]M4,E")#
0ZK%BP;vFw53f"D!n#!qK!nIr*053f"10Z#bo
IT|D CloudScape ,$053f"1D53}]bD?<{F#
g{%wr*4%,r053f"/@w1aT>}vn,?vT&;V`MDVC
f"#zIT9CK0Zli053f"1DZ]#d;z^(1SSKA;|D
5,+ITC>}m4%>}m#z9IT20 JDBC ,Sw4CJb)mPDNN;
E,;}Xk\b|Db)053f"1mPD}],r*byI\a<Bbv=8
vVJO#
/f: g{z* CloudScape Z IBM Tivoli Directory Integrator P6k=KP,x;
GT*xD==w*~qwKP,rqXZ"TbTrKPdC.0YNXU}]
b#r*0dC`-w1t/ IBM Tivoli Directory Integrator ~qwD%@5},C
~qwKPZT:D JVM P,yT053f"1TZK~qw;IC#XU System
Store Details 0Z2aO*=}]bD,S#
":;}03d1&\29CK053f"1<u,z*?vi0w._8(KBD
}]b?<#
C'XTf"
0C'XTf"1G;VCZ,$k3v|5X*DrP/ Java TsD053f"1
m#bGC'f"}]T0,$VCi~N}MXT(}g Iterator State Store)D
X=#}g,1zhC Active Directory Changelog ,SwD Iterator State Store N
Z 2 B IBM Tivoli Directory Integrator En 41
}1,zZ8(,SwCZ#fMV4|zw4,D|5#g{zk*|zTWN
(rO;N)|DDu?*<,;h>}0C'XTf"1PD Iterator State Storeu?(4,%wCN}T_D>}4%)#
C'IT9CBfD53wC#VT:DTs:
system.setPersistentObject(keyValue,obj)9C8(D keyValue +Ts obj #fZ0C'XTf"1P#g{Ts#f
I&r+d5X,qr/}5X null#
system.getPersistentObject(keyValue)S0C'XTf"15XxP8(D keyValue DTs#g{ keyValue 4R=,
r/}5X null#
system.deletePersistentObject(keyValue)>}0C'XTf"1PxP8(D keyValue DTs#K/}5XQ>}DT
s,qrg{C keyValue 4R=,r5X null#
b)=(CJ1!D0C'XTf"1#
":;},cIT9Cf"$'4(M9CT:Df"#
g{zS053f"10Zi4K0C'XTf"1,ra"b=|_PTBm(
e:
| (;|(512 char)
u? k|`X*DTs
":NN*#VZ0C'XTf"1PDTsXkGIrP/D#
Delta f"
Delta f"IZ053f"/@w1PD Delta Tables D~PBfR=#?Emm>
;v Delta Store N}hC(Z|zwDd/?!n(P)#Pm``M=(I1S&
m Delta f",;}(i;*b4v#PX Delta &\D|`E",kNDjb*Z 39
3D:Delta MFc|D;D;Z#
lic/XBt/f"
lic/XBt/f"I(zi0w._Md|i~5Vlic/XBt/Dm``
9I#kNDZ 49 3D:lic/XBt/;#
f"$'=(
TBGIk0f"$'1;p9CD=(D>}:
public static PropertyStore getDefaultPropertyStore () throws Exception;5X1!XTf"#
public static PropertyStore getPropertyStore ( String table ) throws Exception;5XT{Fj6D0XTf"1#?N;vV;vx({FD5}#
@param nameXTf"{F#
42 IBM Tivoli Directory Integrator 5.2:C'8O
@returnk{FX*DXTf"Ts#
public static String getSystemDatabaseURL ();5X53f" JDBC URL#
public static Connection getConnection () throws Exception;+,STs5XA1!}]b#
public static Connection getConnection ( String database ) throws Exception;+,STs5XA AutoCommit hC* TRUE D8(}]b#
@param database}]b{F
public static Connection getConnection ( String database, boolean autoCommit) throws Exception;
+,STs5XA8(}]b#
@param database}]b{F
@param autocommitT/d5j>
@return=8(}]bD,STs
public static boolean dropTable ( Connection connection, String table );>}k,SX*D}]bPD;Em#
@param connectionI getConnection() q!D,STs
@param table*>}Dm
public static void verifyTable ( Connection connection, String table, Vectorsql ) throws Exception;
i$}]bPD3EmGIf!D#
@param connectionI getConnection() q!D,STs#g{* NULL,rq!=1!m
D,S#
@param table*i$Dm{#
@param sqlg{Cm;fZ,CZ4(CmD SQL odDr?#
public static Exception dropTable ( String tableName );>}1!}]bPD;Em#
@param tableName*>}Dm{
public static byte[] serializeObject ( Object obj ) throws Exception;+TsrP/*VZ}i#
Z 2 B IBM Tivoli Directory Integrator En 43
@param obj*rP/DTs
@return|,QrP/DTsDVZ}i
public static Object deserializeObject ( byte[] array ) throws Exception;+VZ}ifrP/* Java Ts#
@param arrayxPQrP/D Java TsDVZ}i
@return4nD Java Ts
XTf"=(
TBGIk0XTf"1;p9CD=(D>}:
public Object setProperty ( String key, Object obj ) throws Exception;ZXTf"PmSr|B3v5#g{4PK|B,r5X-PD5#
@param key(;j6
@param obj5
@return|B1D-PD5
public Object getProperty ( String key ) throws Exception;5XXTf"PD3v5#
@param key(;j6
@returnf"PD5,g{4R=,r* NULL
public Object removeProperty ( String key ) throws Exception;>}XTf"PD3v5#
@param key*>}D(;j6
@return-PD5,qrg{ZmP4R=|,r* NULL
UserFunctions(53Ts)=(
UserFunctions `(}g,53Ts)_Pd|Q(eD=(4q!/hC053XTf
"1PDTs:
public Object getPersistentObject ( String key ) throws Exception;K=(S1!53XTf"q!8(Ts#
@param key(;|
44 IBM Tivoli Directory Integrator 5.2:C'8O
public Object setPersistentObject ( String key, Object value ) throws Exception;K=(+8(Tsf"Z1!53XTf"P#
@param key(;|
@param value*f"DTs(XkG Java IrP/D)
@returnITs(g{PD0)
public Object removePersistentObject ( String key ) throws Exception;K=(>}1!53XTf"PD8(Ts#
@param key(;|
@returnITs(g{PD0)
LP
yP,Sw<ITS;ZzD,SwbPDd|,Sw,rSw*d;?V|,Z IBM
Tivoli Directory Integrator PD53,SwPLPdC#LPG]iDD(}g,myldapI T S z D , S w b P D c o r p l d a p L P , x C , S w I T S
com.ibm.di.connector.LDAPConnector LP,|G|,Z IBM Tivoli Directory Integrator
PDj< LDAP ,Sw)#
,SN}"bvw"#="tT3d"4Su~"Hook T0 Delta hC<ITSd|
,SwLP#*sEKb3v,SwDLPhC,k%wC,SwDLP4%#r
_,zIT(}%w;Z!n(W?R`GdDLPT:r,4i4M|DNN!n
((#="d/?H)DLPhC#kND6IBM Tivoli Directory Integrator 5.2:kE
8O7PD:mSdk,Sw;Tq!|`E"#
S,SwbPD3v,SwLPJmLPC,SwD?v?V#(;D}bG Delta h
C#Delta hCG;ILPD#
tT3d
i0w._,SwIV*=v?V:
v (C?V,IT0ki0w._RIThC*X(==(Iterator"Lookup"Delete
H)#bGIZ IBM Tivoli Directory Integrator0dC`-w1PdCD,Sw#
v s(?V,|Kb},S=D}]4D<u8Z#bF*0-<,Sw1#
^[N1S}]4A!E",rrd4kE",5JDA!"4kr>}Yw<GI
0-<,Sw14PD#*KZi0w._P,SwD(C?V(Q`FE>D&m
ZK4P)M0-<,Sw1.d+M}],XkZ0-<,Sw1D}]f"M$
wu?.d+MtT#bF*tT3d#
i0w._PD}]f"*$wu?PDtT,x0-<,Sw1P>Xf"DE"
GFw conn Du?Ts#bGvZtT3dZdfZDY1Ts,rKZE>`FP
dICTGP^D#rK,1,SwAk"bv}]1,KE"f"Z conn P,RX
Z 2 B IBM Tivoli Directory Integrator En 45
k+MA$wu?#qr1,SwtT3djI10-<,Sw1PA!D}]+*
'#`4X,zXk+tT}]S work Ts+MA conn Tc9dv,Sw\;|
B}]4#v1`4tT3dzk1,T0ZBfa=D Hook(kNDZ 47 3D
:Conn Ts;,xb) Hook V!vZ,SwD==)P,conn TsEGICD#
z9ITN<6IBM Tivoli Directory Integrator 5.2:N<8O7PD:i0w._M,
Sw==wL<;,Tq!PXN1Y153E>d?ICD|`E"#
y],Swy&ZD==,tT3dIZ,SwDdk3d!n(rdv3d!n(
PjI#
IT+4Tdk,SwDtT3dS*S}]= Java TsD3VN=Dj</#zI
TSX(Z}]4q=D0-<,Sw1*<,;s+|GX|{"[/rq=/*
$wu?Dj</tT#i0w._Dd`?V;4=j</tT#}g,0-<,
Sw1IT+]tT frstnm(W{F)M lstnm(2{F),xtT3dIT+|G3
d*%vj</D FullName tT,i0w._PDd|,SwQ*CtT#0#=1
!n(xhzT3dPy|(D}]`MDXF#
Zi0w._dC... !n(O,P;v!nITT/3dyPtT#!qK!na*?
v,Sw3dyPtT,x^hdCNNtT3d#_eX2,g{bGdk,Sw
(Iterator"Lookup"CallReply r Delete),yPtT<aS conn Ts4F= workTsP#g{bGdv,Sw(AddOnly"Update r CallReply),yPtT<aS
work Ts4F= conn TsP#
T/tT3dG;vi0w._+V5"a0lyP;PT=tT3dD,Sw#z
IT9CXbtT{F0*1dCX(,Sw4PT/3d#499CXb0*1t
T,zT;IT|DX(tTD3d,rmSBD3d#
Null P*
P1,53aT<3d1YDtT#}g,g{3vI!Dg0Ek;Zdk}]4
P,rdv3dPD3vtTQS$wu?>}#;,D}]4T;,D==&m1
YD5(NULL 5"UV{.),"R IBM Tivoli Directory Integrator 2a)K;V
3d1YDtTD==#|Fw Null P*#3dA-<,SwMS-<,Sw3d1
0NULL P*1<pwC#
":0Null P*1vZ4R=tT1JC#g{tT5X(fZ),+d5* NULL,
r0Null P*1;JC#
JDBC ,Sw_P jdbcExposeNullValues N}hC,9z\;+ NULL 53d*1
YDtT(kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:JDBC ,S
w;)#
Null P*ITZm`6p8(:53"dC"i0w._MtT#;x,r* Null P
*G_HX(Z}]4D,b9CZ!I\MD6phCbv53XT_PG#Db
e:
536p
8 ( 5 3 6 p D N u l l P * G Z g l o b a l . p r o p e r t i e s D ~ P ( } +
rsadmin.attribute.nullBehavior XThC*TB5.;jID#
46 IBM Tivoli Directory Integrator 5.2:C'8O
dC6p
ba2G536pD Null P*,"RG(}+ rsadmin.attribute.nullBehaviorJava tT(Z0dC/@w1P)hC*TB5.;dCD#
i0w._6p
i0w._ Null P*GZi0w._DdC... !n(P8(D#
tT6p
(}ZtT3dP%w3vX(tT"Z0tTj8E"10qPSB-K%
!qZ{DP*,IT*CtTdC Null P*#
Null P*'VgBy>DeV;,hC,"Z2(EZ(* global.properties D~r
Java tT)hCK rsadmin.attribute.nullBehavior:
UV{.(empty string)
1YDtTC_PUV{.5(″″)D%v543d#
Null(null)
4C53d1YDtT,b6E att.getValue() wC5X null#
>}(delete)
S3d>}CtT#
5(value)
C8(D53d1YDtT#TZi0w._MtT6pD Null P*,5hC
Z`&D Value `-VNP#g{h*,zZboIT(}+5ECZ;,D
P 4 8 ( ` v t T 5 # g { z * 5 3 M d C 6 p D N u l l P * 9 C
r s a d m i n . a t t r i b u t e . n u l l B e h a v i o r , r X k 9 * h C
rsadmin.attribute.nullBehaviorValue tT#
1!P*(Default Behavior)
bvhC(T0tT6pD ″(not specified)″)mwXkS|_D6pLP Null
P*#}g,tT6pSi0w._6pLP,xi0w._6pS53rd
C6pLP#
":dC6pD Null P*I2GNN536pDhC#xR,Z536phC
D1!P*H,Z8( delete,xZdC6pbH,Z value#
b)!n(#ZdCD~D Java tT?VPhC:kND6IBM Tivoli Directory
Integrator 5.2:N<8O7PD:W!n(Java tT);Tq!|GD{FM5#
Conn Ts
0-<,Sw19C conn u?TsTCJyP}]4#KTsvZtT3dMzfX
(Z==DwD Hook(kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD
:i0w._M,Sw==wL<;)PGICD#BfGZtSEtT3dvVD
Hook Pm,"RrK|GP(CJ conn Ts#
Iterator1,SwQA!}]"+dbv* conn Ts1,4PtT3d#}CZtT
3djI.0wC After GetNext Hook,;s"4wC GetNext OK Hook,
rK=v Hook <P(CJ conn#
Z 2 B IBM Tivoli Directory Integrator En 47
Lookup1,SwQR=}]"+dEk conn Tss,4PtT3d#ZtT3dj
I.0wC After Lookup Hook,;swC Lookup OK Hook,rK=v
Hook <P(CJ conn#
Update,SwyvDZ;~BG"T(;*|BDu?,Tc7(Gh*0mS19
G0^D1Yw#
v g{4R=u?,r*zzDmSjItT3d#;s>}UDtT,T0
ZtT3dP4jG* Add DtT#;swC Before Add Hook,"RC
u?mS=}]4P#1jI1,wC After Add Hook#=v Hook <P
(CJ conn
v g{R=`v%du?,rwC Multiple Entries Found Hook#g{K
Hook ;fZ,r|B'\#conn TsZK Hook P;IC,+ work T
sIC#
v g{R=;v%du?,r4PtT3d#current TsG8R=DTs,"
R+*|BKTs,x conn G8|,B5DTs#work Ts2GICD#
;swC After Lookup M Before Modify Hook,"R>}tT3dP4
jG* Mod DtT#g{tCKFc|D,RP|D,rwC BeforeApplying Changes Hook#;sC conn u?|B}]4,"wC AfterModify Hook,r Modify No Changes Hook#ZyPb) Hook P
current Ts<GICD#
AddOnlytT3d.s,+>}UDtT#;swC Hook Before Add,Ru?mS=
}]4P#;swC Hook After Add#=v Hook <P(CJ conn#
Delete 4PdktT3d,x conn IC"R|,*Z After Lookup"BeforeDelete M After Delete Hook P>}Du?#
CallReply;"ztT3d,rx;PICD conn Ts#=v Hook <P(CJ conn#
X*DdCM53Ts
yP_LyP_(i0w._MB~&mLr)<IZE>P(} task TsCJ#k
ND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:task Ts;#
task Ts5JOGt/"4Pi0w._rB~&mLrD_L,"R9zP(CJb
v}L(}g,task.logmsg() =()DU>"9z\;CJdCN}(s Null P*
hC)T0a)wT|n debugBreak() M debugMsg()#
mb,i0w._PD,SwaT/yw*xPi0w._dCP3h|GD{FD
E>d?#rK,cXk|{,SwTc9|GI*!(DE>oTPP'Dd?
{#
mb,z5Pw_L,|i0dC`-w1r~qwyP,b!vZt/KDv5
3#KTsI(} main d?qC,"R|a)KCT4k53U>"t/i0w._
MB~&mLrT0CJdCDNN?VD=(#PX|`E",kND6IBM Tivoli
Directory Integrator 5.2:N<8O7PD:w*Ts;#KTs_PCZ&mi0w.
_Mi/4,E"D=(#
48 IBM Tivoli Directory Integrator 5.2:C'8O
gNXF_L}
":>ZCZ_6C'#
gH0yv,i0w._MB~&mLr<G_L#3)B~&mLr(}g TCP M
HTTP)uAI\*SUD?vBD,St/;vBD_L#Ci0w._MB~&m
Lrt/m`d|_LxV'vs?_La<BZf;c#
9C+V53XT
+V53XT com.ibm.di.server.maxThreadsRunning ITCZu!I~qwt/D_
LDns}?#KXTITZ global.properties D~PrZ%vdCD Java tTPh
C#;)o=^F,_LXFG(}SYB_LDt/4?F4PD#bV=(Pz
Z\bi0w._^(ZdV'(IzD)i0w._jI.0jID@x#;},
zT;ITt/|`_L(,vzy*sD)#g{zk*Zbv=8P|CXXF_
L<u,z+h*CE>&mbvJb#
9CE>`F
g{zk*9W\bt/}`_L,;Vr%D=(MGZt/BDi0w._.0
H}10Di0w._jI(9C join() =()#TBzk:
// Here we start the AssemblyLine itselfvar al = main.startAL ( "myAssemblyLine", entry );// wait for al to finishal.join();var result = al.getResult();
}CIjIC=(#g{z!T al.join() wC,rw_L(i0w._rB~&mL
r)Lxx;H}Qt/Di0w._jI#
^F_L}Dm;V=(G9C/} java.lang.Thread.activeCount()("I\9C
java.lang.Thread.sleep())#
activeCount() =(ITCZ7(10_LyP_(task)}Z9CD_L\}#
}g,g{B~&mLrlid5P`YKPPD_L,r|Zt/BD_L.0I
T]_#TBG JavaScript zk,g{,} 20 vS_LTZKP,rITCKzk9
B~&mLr]_ 1000 Ak#
":0dC`-w1M~qw9C;)_L,rK activeCount S 4 *<#
while (java.lang.Thread.activeCount() > 20)java.lang.Thread.sleep(1000);
main.startAL ( "AssemblyLine", entry );
g{k*l=t/i0w._1=_LF}}_,IT`4gBzk:
var al = main.startAL ("myAssemblyLne");main.logmsg ("Number of threads: " + java.lang.Thread.activeCount());if (java.lang.Thread.activeCount() > 20 )
al.join();
lic/XBt/
IBM Tivoli Directory Integrator 9C'\;Zi0w._DYwPhClic"9|G
S;XFDr4XFDXUPODcXBt/#
Z 2 B IBM Tivoli Directory Integrator En 49
10;0li0w._Yw#Z IBM Tivoli Directory Integrator DTsf>P,r\
I\a)9=d|i~(}gB~&mLr)#
Klic/XBt/r\Zi0w._D4PZdZ;,cf"4,E"Md|N
},b9~qw\;V4i0w._DKP73Tc|\T\XFD==XBt/#
bITZ-<~qwOjI,+1ZX2ITZ;,DzwOjI#
XBt/i0w._D\&GJO*F&\D}>=9(.;#k"b,IBM Tivoli
Directory Integrator ";G1Sa)$hD#fJO*F&\D53#|7PX5,|
_P;vr\,Cr\*K`&\a)K(C}>=9(,"ITTbV==uYT
d|==yh*DV$`kD}?#;},**@Cr\";G(}%wsj5Vj
+DlicMXBt/&\#3)XZ|gNJCZ4+fYD5qJbDk(Gw
*D#
":tC0lic/XBt/1I\5MT\#s?DE"Xk2+X4kJ4b,
xbah*;(Dz[#P1,zI\nCy>;9C0lic/XBt/1r
\,r*XB&m;(}?Du?Dz[*MZZ;N"T1TT\D0l#;
x,P1XB&mu?;G!n#
#fMf"i0w._4,E"
&\3sDy>-m\r%#P)BivVms,xzk*S#9D;CLx#by
vD-rAYP=c:
T\ z;#{XvQ-jIDBi#vTZr*dwCD,SwxG#:}Di0
w._EGbyD#Z0lic/XBt/1tC1,(#&ms?}]Di
0w._ITeVvOXDT\p'#
5q#,
XBhCg0Ek;NI\;GJb,+`N)1O(a#
zk*\bQ-jID$w#;x,g{i0w._ZdWNKPZd<B1wC
(}g,Z Hook &mD}LPZ IBM Tivoli Directory Integrator Db?9(3vE
"f"),rZXBt/1,CE"f"G;ICD#IBM Tivoli Directory Integrator
0lic/XBt/1r\;ITZd1SXF.BV44,M73#
IBM Tivoli Directory Integrator0lic/XBt/1r\+TBE"#fZ8(f"
P#Kf"D?<76Zi0w._Dlic!n(P8(#1i0w._KP1,
Z 41 3D:53f";r\*z4(M,$K}]b,f"TB4,Ts:
v u< work u?
v TCB
v i0w._PD;C(D;=MDv,Sw)
v NNx(=hD$wu?Ts
v TZ|zw,dk/PD;C(Nj)
v ,y,TZ&Z AddOnly ==DD~53,Sw,I&4kO;vu?Dc
v y]h*,,SwDd|4,E"Tc\;V4|
":2GZi0w._&mD}LP#fD<G_HIdCD#kpY(*K9i0
w._GIXBt/D,MXk#f?v*XM?v=h#I\CDhFuAJ
50 IBM Tivoli Directory Integrator 5.2:C'8O
mXBt/x^hb)*XP3)##f|Yx;G|`\T}+D==0lT
\#zIZi0w._lic!n(P8(*#fDZ]#
Z IBM Tivoli Directory Integrator0dC`-w1P,IR={vi0w._D;vw
*XFwtClic#K*XXkr*T9CNN0lic/XBt/1&\M4P
E"DNNG<#9P,*K\;xVi0w._D;,KP,zXk8(;v0j
6 1 , C j 6 I Z s L D 0 X B t / 1 P 9 C #( g { 4 8 ( , r 9 C
IDI_CP_AssemblyLine-name N=D1!j6#)
ZG,TZi0w._PD?v,Sw,<P;vtC4!r;K4!rXk!PT
9 CPR r\<Gj+G<PXKX(,SwDNNE"#b9a9&Z Iterator ==
D,SwZ|+XF;6B;v,Sw1#f$wu?#
!P$wu?4!ra8>0lic/XBt/1r\ZKX(,SwjIdZi0
w._PD$w.0G<$wu?DZ]M4,#(}tC,SwXBt/E"4!
r,I7#0lic/XBt/1G<NNXhDE"T9K,Sw\;Zi0w.
_XBt/D}LPP?DXXB*<d&m#byD;v>}MGdkD~PD;
C#
|q-0lic/XBt/1r\;ITZd1SXFBRv1d#fZZ;v;C
1V44,M73#C'Z0lic/XBt/1r\b?9(DNNZ]ZXBt
/1<I\G;ICD#g{LxDi0w._&mGTby&Zj+`,4,Db
?E"*y!D,rIC'7#ZXBt/ZdxPI&"T.0QV4Kb?E
"#
I\`1CX-zXBt/x@;fZDi0w._D;v>}G|B JDBC }]bD
i0w._#&Z AddOnly r Update ==D JDBC ,Swy4PDBqG\Wc}
]bDj{TzF#$D,rK1i0w._XBt/(Yhd|xL;PYwr|
DC}])1yPf"ZGoDE"I\T;GICD#uAI Hook PD1S JDBC
wCf"D}]-zbVivs<I\T;fZ#
;x,I JavaScript wCf"AWcYw53DD~PDNNZ]Zi0w._bbX
U91<I\*',rKZXBt/1b)Z];YGICD#
":1 IBM Tivoli Directory Integrator 4ktC0lic/XBt/1Di0w._
PDD~1,|:pZJ1D;CM1d"B=D~Ddv#C'1S4kD~
h*I!`,D$@k)#
":^[GqQtC#f$wu?,<a*|zwT/#f$wu?#
If (Checkpoint/Restart enabled AND ConnectorIsIterator)alwaysSaveWorkEntry().
^F
IZ5V3),SwMbvwD==,Z0lic/XBt/1r\IT#$DZ]
OfZ;)V^#
TZ&Z AddOnly ==D,Sw,g{i0w._bbXU9,rf"ZZfPDN
N}]<a*'#}g,13v0D~53,Sw1Zi0w._}LD)2XU
1,C,Sw9Cr% XML bvw`4{v XML D5#g{i0w._Zbvc.
0POx,SwXU44P,rdvP^(R=NNZ]#rK,Z9C&Z AddOnly
Z 2 B IBM Tivoli Directory Integrator En 51
==D XML bvw(MdIzLr"DSML T0 SOAP)D}]/ODNN,SwY
w("tCK0#f,SwXBt/E"1j>)<a'\#
":;*wX&m,zMITbvbVV^#;},r\;as$hDGy$w#
4,E"P)QT}7,$Dm;v>}G JMS ,Sw#xpGqT Auto-acknowledge
==A!#
SEnO2,(}9C0lic/XBt/1"+ Auto-acknowledge hC*r*,C'
DNqITdC|Sr%,r*r\;*sZ3vi0w._=h#f work Ts"7
O{"DSU#
;x,IZZi0w._w}LP5V0lic/XBt/1D==PD3)V^,
10ZS JMS SPSU{"D;CM+K{"(Q3dA$wu?)PJCDZ]a
;A0lic/XBt/53f"1D;C.dfZ;v0Z#g{K0ZP"zP
O,"tC0lic/XBt/1Mr* Auto-acknowledge,rZXBt/1K{"a
*'#ttC0lic/XBt/1xXU Auto-acknowledge,rYNSSPlwCE
",Zs`}ivB,b<G|SZ{DP*#!\gK,*K}7DSP&m,9
GXkZ,;cTs_bV==7O{"#*#VNNd|msD0Z!I\D!,
bvNqnC(}Zi0w._PtzE JMS ,SwekE>i~4jI,by;G
v;~B:f* JMS \_(4,7O){"DSU,r*SVZpRG7E5PfZ
Z$wu?(I0lic/XBt/1r\}7X#$)PD{"yh*D#
BmT>K,Sw"NNbvw(g{QtC"R,Swh*)M|GDYw==D
I\iO,;vX(Z0lic/XBt/1r\DOBDP,xRuAZ;c IBM
Tivoli Directory Integrator OBDP:
,Sw bvw == Notes®
I L C A U D
D~53
CSV Y X X Y X X
XML Y X X N X X
Fixed Y X X Y X X
DSML(v1) Y X X N X X
HTTP Y X X Y X X
LDIF Y X X Y X X
Line Reader Y X X Y X X
SOAP Y X X N X X
Simple Y X X Y X X
E>bvw Y X X – X X TdvD~DNN4k
XkT=X"B#
URL ,Sw
CSV – X X N X X
XML – X X N X X
Fixed – X X N X X
DSML(v1) – X X N X X
HTTP – X X N X X
52 IBM Tivoli Directory Integrator 5.2:C'8O
LDIF – X X N X X
Line Reader – X X N X X
SOAP – X X N X X
Simple – X X N X X
E>bvw – X X N X X
HTTP M'z
CSV – – – – X X
XML – – – – X X
Fixed – – – – X X
DSML(v1) – – – – X X
HTTP – – – – X X
LDIF – – – – X X
Line Reader – – – – X X
SOAP – – – – X X
Simple – – – – X X
E>bvw – – – – X X
HTTPServer
CSV Y X X N X X HTTP ~qw,SwZI
XBt/Di0w._
PGy>;`]D#
XML Y X X N X X
Fixed Y X X N X X
DSML(v1) Y X X N X X
HTTP Y X X N X X
LDIF Y X X N X X
Line Reader Y X X N X X
SOAP Y X X N X X
Simple Y X X N X X
E>bvw Y X X N X X
FTP M'z
CSV Y X X N X X
XML Y X X N X X
Fixed Y X X N X X
DSML(v1) Y X X N X X
HTTP Y X X N X X
LDIF Y X X N X X
Line Reader Y X X N X X
SOAP Y X X N X X
Simple Y X X N X X
E>bvw Y X X N X X
TCP
CSV Y X X – X X
Z 2 B IBM Tivoli Directory Integrator En 53
XML Y X X – X X
Fixed Y X X – X X
DSML(v1) Y X X – X X
HTTP Y X X – X X
LDIF Y X X – X X
Line Reader Y X X – X X
SOAP Y X X – X X
Simple Y X X – X X
E>bvw Y X X – X X
Zfw
CSV N X X N X X
XML N X X N X X
Fixed N X X N X X
DSML(v1) N X X N X X
HTTP N X X N X X
LDIF N X X N X X
Line Reader N X X N X X
SOAP N X X N X X
Simple N X X N X X
E>bvw N X X N X X
E>,Sw – – – – – – NN0lic/XBt
/1_-<GIC'5
VD#
SNMP Y X X Y X X
Notes Y Y X Y Y Y
Domino™ C',Sw Y Y X Y Y Y
LDAP Y Y X Y Y Y
JNDI Y Y X Y Y Y
Jd N – X X X –
JDBC Y Y X Y Y Y
JMS
CSV Y Y X Y X X
XML Y Y X Y X X
Fixed Y Y X Y X X
DSML(v1) Y Y X Y X X
HTTP Y Y X Y X X
LDIF Y Y X Y X X
Line Reader Y Y X Y X X
SOAP Y Y X Y X X
Simple Y Y X Y X X
E>bvw Y Y X Y X X
IBM-MQ
54 IBM Tivoli Directory Integrator 5.2:C'8O
CSV Y Y X Y X X
XML Y Y X Y X X
Fixed Y Y X Y X X
DSML(v1) Y Y X Y X X
HTTP Y Y X Y X X
LDIF Y Y X Y X X
Line Reader Y Y X Y X X
SOAP Y Y X Y X X
Simple Y Y X Y X X
E>bvw Y Y X Y X X
IBM Directory Changelog Y Y X X X X
Active Directory Changelog Y Y X X X X
Netscape Changelog Y Y X X X X
Exchange Changelog Y Y X X X X
BTree Object DB Y Y X Y Y Y
|nP
CSV Y X X Y X X
XML Y X X Y X X
Fixed Y X X Y X X
DSML(v1) Y X X Y X X
HTTP Y X X Y X X
LDIF Y X X Y X X
Line Reader Y X X Y X X
SOAP Y X X Y X X
Simple Y X X Y X X
E>bvw Y X X Y X X
TBGKmD<":
Y ,SwrbvwQ*0lic/XBt/1tC#
N ,Swrbvwk0lic/XBt/1;`]#
– ^Xb"bBnrT0lic/XBt/1;IC#wX9C#
X K,SwDG(==,r==kbvwDG(iO#
I Iterator ==#
L Lookup ==#
C CallReply ==#
A AddOnly ==#
U Update ==#
D Delete ==#
Z 2 B IBM Tivoli Directory Integrator En 55
":E>`F73PywM9CDNNd?(hook"tT3dH)XkIC'*0l
ic/XBt/1C>&m#
XBt/,e
1i0w._}#t/1,|Z,Swu</0s<KPQ(eD Prolog#,Sw>m
KP Prolog !n(BfQViDwV Hook,XpG Before Initialize Hook M AfterInitialize Hook#
ZXBt/D}LP,C';&CZb) Hook P4PNNI\kP>V4DYw`,
\DYw#}g,4Png>}D~"hCY1?<H,$NqD0D~53,S
w1#;d05,*K9i0w._JOIXBt/D73"R2+,h*TwVE>
`FD*XxP;)^D,Zi0w._6p(Prolog M Epilog)T0%v,Sw Hook
ME>i~#
*K\;O(Gq}4PKXBt/,ITwC|{* task.isRestarting() D<{=
(#ZXBt/&mD}LP|5X true#;)i0w._Qj+V4,C=(5X
false#b9NNC'zk<\;ZXBt/D}LPI!XbD$@k),"RZH
0D>}P,0D~53,Sw1ITr*|k*Z|PO0Lx=?0*9Qq!
D?Va{xx},$Nq#
XBt/Yw
i0w._XBt/14PTB=h:
1. t/(XBt/)i0w._#
2. ~qwNqi$GqfZQ*Ki0w._8(D0licj61DP'0lic
/XBt/1}]#
3. g{}]P'"RmwXBt/GXhD,rKPi0w._ Prolog "u</,S
w,mw|G}ZXBt/#;s4P After Initialization Prolog#
4. V4QPOi0w._DwV}]*X:
a. $wu?V4*|ZPOcfZD4,#
b. *yP,SwV4X(Z,SwDE"#
c. g{Ci0w.__P;vr`v|zw,rV4n/|zwQ4PDN}#
;d05,V4dk4PD;C#
5. i0w._SXBt/E"PQ4P"#fDUU}%DO;v=hV4w-7#
|I\<Bi0w._1Sx*A Epilog r1Sx*Ai0w._PD,Sw.
;,x;XGZ;v#
g{G|zw,V4dk4PD;CDJbh*;)|`D5w#
Iterator ,Sw
&Z Iterator ==D,Sw(#tZ=V`p.;:
v ZL(D}]/(}g,;vD~)OYwDG),Sw
v Z/,4(Da{/(}g,SQL SELECT"ldapsearch H)O|zDG),Sw
vZbVC>,0FTP M'z,Sw1MGZL(D}]/OYwD;v>}#49C
,Sw(}xg,SA!,+|ZdOYwD}]/T;G;ZD~53P3;CD
L(/O#|vv;GyZ>XD#
56 IBM Tivoli Directory Integrator 5.2:C'8O
Z;V`pPD|zwaI0lic/XBt/1r\ZXBt/1(}r%XSd
k4A!(M*z)kQPODi0w._y5PD}?`,Du?(}K OverrideGetNext hook TbDNN Hook <QvT)xPXB(;#1i0w._}7XV4
Yw"=o|zw1,}7Du?Q;lwv4#
;x,Z~V`pPD|zw;aT<A!kT0`,}?Du?##fT:D4,
E"DG),Swa;8>T:xPXB(;#d|,Sw(}g JMS ,Sw);h
9CB|V4D,SOvVDZ;vu?#
BfGTZwV&Z Iterator ==D,SwZXBt/1y4PDYwDEv(Y(Q
#fXBt/E"):
&Z Iterator ==D,Sw XBt/Yw
D~53 A!"*z
URL ,Sw A!"*z
HTTP Client ^Yw
HTTP Server ^Yw(k0lic/XBt/1;`])
FTP M'z A!"*z
TCP ^Yw
Zfw A!"*z
E>,Sw A!"*z
SNMP ^Yw
Notes A!"*z
Domino C',Sw A!"*z
LDAP A!"*z
JNDI A!"*z
Jd A!"*z
JDBC A!"*z
JMS ^Yw
IBM-MQ ^Yw
IBM Directory Changelog SO;v|D`EXBt/
Active Directory Changelog SO;v|D`EXBt/
Netscape Changelog SO;v|D`EXBt/
Exchange Changelog SO;v|D`EXBt/
BTree Object DB A!"*z
|nP A!"*z
":Z\`ivB,y]}/|D|zw,XBt/i0w._I\;P`sDb
e#}g,49ITS4A!M*z0Zfw,Sw1,+bv4G;;#fD
ZfTs,rK-zXBt/.sM;YfZ#|aZ}]ax1"45X#g
{i0w._PPbyDi~,rCi0w._Jb;JCZ0lic/XBt
/1#
Z 2 B IBM Tivoli Directory Integrator En 57
AddOnly ,Sw
&Z AddOnly ==D,SwIV*=V`p:
v ZL(D}]/(}g,;vD~)OYwDG),Sw
v Zxg,SO|z"rKZ?vu?y!OYwDG),Sw
k|zw`F,1i0w._KP1,AddOnly ,Swa"T(g{I\)V4|GZ
i0w._PD;C,yTZXBt/.scP^lD,xdv#
*Kmb&Z AddOnly ==D,SwDV^,4k}]b(4k%vu?r{v}]
/)D,Sw.d*STxp#BmxvKhv:
&Z AddOnly ==D,Sw dv?
D~53 }]/
URL ,Sw }]/
HTTP Client u?
HTTP Server u?
FTP M'z }]/
TCP }]/
Zfw }]/
E>,Sw u?
SNMP u?
Notes u?
Domino C',Sw u?
LDAP u?
JNDI u?
Jd ;JC
JDBC u?
JMS u?
IBM-MQ u?
IBM Directory Changelog ;JC
Active Directory Changelog ;JC
Netscape Changelog ;JC
Exchange Changelog ;JC
BTree Object DB u?
|nP }]/
H0DmPZ}]/OYwDNN&Z AddOnly ==D,SwkXBt/C>D XML
bvw<;`]#g{*by;v0,Sw/==/bvw1iOtCK#f,Sw
XBt/E",ri0w._a'\#
XpTZ0D~53,Sw1,IBM Tivoli Directory Integrator a"T0RAdvD~
Pns;vI?D;C(+NNI\ZD~PaxD}]Z4k;k1MXOK)"
SQV4Di0w._DX==SBDdv#
SEnO2,FTP M'z,SwG`FD,}KD~Z6L53O#;x,K,SwD
105V"4tC`,DP*#1H0KP1,Sl#XU91,(} FTP ,S=6
58 IBM Tivoli Directory Integrator 5.2:C'8O
L53O3vD~DNNdv<I\*'#ZbVivB,0FTP M'z,Sw1ZX
Bt/1*<4k;vBDD~(;'V FTP =S==)#
wT
wwTLr
IBM Tivoli Directory Integrator a)K0wwTLr1(kpkE>wTLrl})#
0wwTLr1Cz%=4Pi0w._MB~&mLr"li"|Dd?(|(5
3a)Dd?,s work M event d?,MzT:Dd?)T01SKPE>#
(}Si0w._rB~&mLrj8E"0Z%wKPwTLr4%IS0dC`
-w1t/wTLr#
;)!(DNqt/,wTLraZ8(DOc]#&m#14P]#1,IT9C
@@4%4T>E"rKPE>#9P`-i4Pm4%a)K`,D!n,;}Z
?vOc<aaQyzzDi4Pm"Td@@#zI\k*i4Dd?D>}G work(work u?Ts)#(}Z0@@1T0rPdk work r+dmS=i4Pm,I
T4= work ;rP/AwTLrDdv0q#g{zD*@@(ri4)E>
task.dumpEntry(work),r$wu?D**"=U>dv0q,MCsQ+KzkE
kbv=8#
(}tCwTPO4!rITZ Hook PhCOc#;},i0w._;\Z^zkD
Hook OPO#g{Z0dC`-w1PtCK3vOc,rZ4P]#1wTPOaT
>zD;C#
z9IT(}9CTB=(ZE>PhCOc:
task.debugBreak ( "my message" );
KzkZbo#9&m"rU>dvD> "my message"#
":wTPO0q^(7(KOcD;C,rKXk@5Zz4kU>D{"#
9Pm;V#CDwT=(:
task.debugMsg ( "my message" );
K/};Gdv{"x^h]#NqD4P#
;PZKPwTxL1E@@b)=(#PX|`DwT=(,kND JavaDocs#
G<MwT
IBM Tivoli Directory Integrator @5Z log4j w*dU>G<}f#Log4j G;vG#
inDr\,|9zI+U>dv"MA`V;,D?j,}gD~"Windows®
EventLog"UNIX® Syslog rb)DiO#|G_HIdCD"R'Vm`;,`MD
U>=SLr#
IBM Tivoli Directory Integrator Server(ibmdisrv)DU>=8GID~ log4j.properties
h v D , x S 0 d C ` - w 1 ( i b m d i t k ) K P 1 q C D X F ( 0 Z r G I
executetask.properties D~PhCDN}\mD(<IZ IBM Tivoli Directory Integrator
20Dy?<PR=)#
Z 2 B IBM Tivoli Directory Integrator En 59
}b)536pDU>N}Tb,z9IT(}mS"|DM>}0dC/@w1P
Logging D~PBfD0U>G<=SLr14*X(dC8(U>dC#ns,i0
w._MB~&mLra)KG<!n(Cz*bvX(NqFwU>G<#
*KvS IBM Tivoli Directory Integrator DZ(G<,zIT(}Zi0w._Pm
SE>zk44(T:DU>{"#K3fhvKC?VDG<U>}L#
U>G</}(`FCZwTDG)U>G</})w*GI task Tsa)D#
*"u?TsDZ]
;V=cD/}9z\;liNNu?Ts(}g work"conn T0 event)DZ]:
task.dumpEntry(entry)
KwC+8(Du?Ts*"AU>,rzT>f"ZGoDyPtT"XTMYw
zk#
*"tTDZ]
*"%5tT: Yhzk*liDtT({F* attr)G%5tT#bIT9C
task.logmsg() /}jI:
task.logmsg("Dumping single value attribute:" + attr.getName());task.logmsg("Value = " + attr.getValue());
":.getValue() /};5XtTDZ;v5#
*"`5tT: Yh3vtT({F* attr)G`5tT"Rzk*T>yP5#Z
bVivB,zXkS7A2|zb)5:
var values = attr.getValues(); // get all attribute values in new array variable// write out the attribute nametask.logmsg ("Dumping multiple values Attribute:" + attr.getName());
for (i=0; i<values.length; i++){
// write out each valuetask.logmsg("Value " + i + " —> " + values[i]);
}
g{z;*@CtTG%59G`5D,z<U<IT9CH0T>D=(#B5
O,g{z-#b4v,r#{Z0E>b1P4(;v/}TczITy]h*4
XC:
function dumpAttribute(tsk, att){
tsk.logmsg("------- Attribute: " + att.getName());
for (var i=0; i<att.size(); i++)tsk.logmsg(" Value: " + att.getValue(i));
}
VZ;hwCzD/},MITT>NNtT:
dumpAttribute(task, myAtt)
60 IBM Tivoli Directory Integrator 5.2:C'8O
*",Sw4,
cITf1*"/I}LPf0DNN,SwD4,#bkt/K,SwDi0w.
_DU>dvPT>DE"`,#TB>}E>T>KFw myConn D,SwDyPI
CE"#1;,y]zDh*,IT9CBfPvD,SwN}DNbS/#
var status = myConn.getStats();task.logmsg("Dumping myConn status:");
task.logmsg("Number of add operations performed: " + status.numAdd());task.logmsg("Number of delete operations performed: " +status.numDelete());task.logmsg("Number of errors: " + status.numErrors());task.logmsg("Number of get operations performed: " + status.numGet());task.logmsg("Number of entries ignored: " + status.numIgnored());task.logmsg("Number of lookup operations performed: " +status.numLookup());task.logmsg("Number of modify operations performed: " +status.numModify());task.logmsg("Number of no-change entries: " + status.numNoChange());task.logmsg("Number of entries skipped: " + status.numSkipped());
*"NbU>{"
.logmsg() /}9zIT+NNzk*DD>|,AU>dv#bb6EzITZU>r
XF(P8>i0w._D(F_-DNN4,#
task.logmsg("Enter your own log message here");
Z task ;ICDivBwTE>,Sw(rd|Ts)
task d?9zP(CJ104PDNq(_LyP_)#;x,ZP)ivB,task d
?;ICZzDE>,}g,ZE>`FDi~(}gE>,Swrbvw)Z?#
TZm`E>Yw,b<GX*DTs,rKz#{9CTBzkhCT:D task d
?:
task = java.lang.Thread.currentThread()
`FX,<UIT(}TB==CJ main:
main = connector.getRSInterface()
dC
dCGT(ezD/Ibv=8D53"}]wMB~Dj{hv#dCf"*_H
a9/D XML D5,"Rg{h*,ITS\#i0w._"B~&mLr"E>M
i~bT0W!nH<f"ZdCP,"9CdC`-w(ibmditk)4`-M,$#
(#,|G<Z;vdCP#+G,P)ivBz#{tk|Dwv?V:
v zk*Zp&f"(uAS\)DQdCDi~(rNNN}E")PDC'{M
\k
v zk*Z`vdCPXCD2mi~
b?XT
(}9Cb?XTIT+i~N}f"ZdCb?#b)G(}%w0dC/@w1
PD External Properties D~P"SKPmPmS"|Dr>}n4dCD#XZ|
`E",kNDZ 113 3D:b?XT;#
Z 2 B IBM Tivoli Directory Integrator En 61
":0b?XT1CZ_e/3)dCN},}gC'{"\k"D~{H#g{z
k*#f|`D;cN}"9|GICZi0w._,kNDZ 82 3D:d
C...;#
|,/{FUd
dCITSdC|,n#b);|,Di~tZm;v{FUd,+ITZ|,Dd
CDOBDP9C,MCs|Gf"ZGo#XZ|`E",kNDZ 112 3D:|
,;#
*4(BD{FUd,k!qTs–>B(|,... "*zD{FUd!q{F(}g,
myInclude)(system G#tD)#+z!qD{F4S=mPD;vD~,;szI
TN< myInclude:/Connectors/myConnector 49Cz|,D,SwbPD myConnector#
IBM Tivoli Directory Integrator 2+WSVc'V
IBM Tivoli Directory Integrator ~qw\;k'V2+WSVc(SSL)2+T-iD
G)?<xP2+(E#
TB,SwMB~&mLrTZQ}7dCD IBM Tivoli Directory Integrator ~qw
'V SSL:
v ,Sw
– JMS ,Sw
– LDAP ,Sw
– Netscape/iPlanet LDAP ChangeLog ,Sw
– IBM Directory Server ChangeLog ,Sw
– Active Directory ChangeLog ,Sw
– Lotus® Notes ,Sw
v B~&mLr
– Active Directory ChangeLog B~&mLr
– DSMLv2 B~&mLr
– Exchange ChangeLog B~&mLr
– HTTP B~&mLr
– LDAP B~&mLr
– IBM Directory Server B~&mLr
– Web ~qB~&mLr
– zOS LDAP B~&mLr
PX|`E",kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:,Sw;
M:B~&mLr;#
":
1. keytool Gw* JRE D;?Va)D#keytool G0\?M$i1\m$_#PX
| ` j 8 E " , k N D
http://java.sun.com/products/jdk/1.2/docs/tooldocs/solaris/keytool.html
62 IBM Tivoli Directory Integrator 5.2:C'8O
9C SSL #$ IBM Tivoli Directory Integrator 5.2 M~qw.
dD,S(IBM Tivoli Directory Integrator w*M'z)
**w*M'zD IBM Tivoli Directory Integrator tC SSL 'V,TB=hGXhD:
1. +~qw(}g IBM Tivoli Directory Server)dC*tC SSL#
2. g{~qwPD$iGT)p$i,k+C$i<v#
3. g{z9;P Java(jks)\?bD~,k9C IBM Tivoli Directory Integrator D
\?$_(root_directory/_jvm/bin)4(;v\?bD~#
4. g{~qw$iGT)pD$i,k9C\?$_+~qw$iw*,6(^$i
<k IBM Tivoli Directory Integrator \?bD~P#
5. `- root_directory/global.properties D~T(e\?bD~;C"\?bD~\kM
\?bD~`M#Z10"PfP,RG;'V jks `M#
# Keystore file information for the server authentication.# It is used to verify the server’s public key.# examplejavax.net.ssl.trustStore=d:\test\KeyRings\ibmdi.jksjavax.net.ssl.trustStorePassword=secretjavax.net.ssl.trustStoreType=jks
# Keystore file information for the client authentication.# It is used to provide the public key of the IBM Tivoli Directory Integratorto the server if the server requests the client authentication.# examplejavax.net.ssl.keyStore=d:\test\KeyRings\ibmdi.jksjavax.net.ssl.keyStorePassword=secretjavax.net.ssl.keyStoreType=jks
6. `- root_directory/_jvm/lib/security/java.security T(e2+)&LPm#
security.provider.1=sun.security.provider.Sunsecurity.provider.2=com.ibm.crypto.provider.IBMJCEsecurity.provider.3=com.ibm.crypto.provider.IBMJCA
7. *,SwtC SSL#
8. XBt/ IBM Tivoli Directory Integrator#
9C SSL #$M'zM IBM Tivoli Directory Integrator 5.2 .
dD,S(IBM Tivoli Directory Integrator w*~qw)
**w*~qwD IBM Tivoli Directory Integrator tC SSL 'V,TB=hGXhD:
1. g{zZ IBM Tivoli Directory Integrator P9;P Java(jks)\?bD~,k9
C\?$_(root_directory/_jvm/bin)4(;v\?bD~#g{z;P*Z IBM
Tivoli Directory Integrator P9CDvK\?,kSO$PDq!\?r4(T)p
\?#
2. g{ IBM Tivoli Directory Integrator PD$iGT)p$i,k+C$i<v#
3. g{ IBM Tivoli Directory Integrator $iGT)p$i,k9C\?$_+Q<v
D IBM Tivoli Directory Integrator $iw*,6(^$i<k=M'zD\?bD
~P#
4. `- root_directory/global.properties D~T(e\?bD~;C"\?bD~\kM
\?bD~`M#Z10"PfP,RG;'V jks `M#
# Keystore file information for the server(IBM Tivoli Directory Integrator) authentication.
# It is used to provide the public key of the IBM Tivoli Directory Integrator
Z 2 B IBM Tivoli Directory Integrator En 63
to the SSL enabled client.javax.net.ssl.keyStore=D:\test\clientStore.jksjavax.net.ssl.keyStorePassword=secretjavax.net.ssl.keyStoreType=jks
5. `- root_directory/_jvm/lib/security/java.security T(e2+)&LPm#
security.provider.1=sun.security.provider.Sunsecurity.provider.2=com.ibm.crypto.provider.IBMJCEsecurity.provider.3=com.ibm.crypto.provider.IBMJCA
## SSLServerSocketFactory Provider#ssl.ServerSocketFactory.provider=com.ibm.jsse.JSSEServerSocketFactory
6. *M'ztC SSL(}g,Z Web /@wP9C HTTPS)#
7. XBt/ IBM Tivoli Directory Integrator#
IBM Tivoli Directory Integrator M Microsoft Active DirectorySSL dC
4PTBYw* IBM Tivoli Directory Integrator M Microsoft® Active Directory dC
SSL:
1. Z Windows 2000 ~qwO200$i~q1"Z0n/?<r1P200s5O
$PD1#Z http://www.ntfaq.com/Articles/Index.cfm?ArticleID=14923 OPj85w#
k7#20s5O$PD#
2. t/0$i~qw~q1#baZ0Internet E"~q(IIS)1P4(;vib?<
T9z\;V"$i#
3. 4(02+T(Vi)_T1T8}0rXFw1S0O$PD(CA)1q! SSL
$i#
a. r*n/?<C'MFcz\m$_#
b. ZrBf,R|%wrXFw#
c. !qtT#
d. ZVi_T!n(P,%wT`-1!rXFw_T#
e. *AFczdC–>Windows hC–>2+ThC–>+2\?_T#
f. R|%wT/$ijkhC#
g. !qB(#
h. !qT/$ijk#
i. KPCr<#!qrXFwD$i#e#
j. !qzDs5O$PDw* CA#!qDZ}= CA 2a$w#
k. jICr<#
l. yP0rXFw1VZT/XS CA jk$i,"R'VZKZ 636 O9C SSL
D LDAP#
4. lwQ20 IBM Tivoli Directory Integrator DzwD0O$PD$i1#
":Z20$i~qw.0Xk20 IIS#
a. ZQ20 IBM Tivoli Directory Integrator DzwOr* Web /@w#
b. *A http://server_name/certsrv/(dP server_name G Windows 2000 ~qwD
{F)#z;*sG<#
64 IBM Tivoli Directory Integrator 5.2:C'8O
c. !qNqlw CA $ir$i7zPm#
d. %wB;=#
e. B;3aT/X;vT> CA $i#%wBX CA $i#
f. BDBX0Zr*#+D~#fA2L}/w#
5. 9C\?$_4($ib#9C keytool.exe 4($ib"+ CA $i<kbvb#
":keytool.exe ;Z IBM Tivoli Directory Integrator ?<PD /_jvm/bin Bf
9CTB|n:
_jvm\bin\keytool -import -filecertnew.cer -keystore keystore_name.jks-storepass password-alias keyalias_name
}g,Y(TB5:
Keystorename = idi.jksPassword = secretKeyalias name = AD_CA
|n4O%gB:
C:\Program Files\IBM\IBMDirectoryIntegrator>_jvm\bin\keytool -import-file certnew.cer -keystore idi.jks -storepass secret -alias AD_CA
*i$\?bDZ],kdkTB|n:
C:\Program Files\IBM\IBMDirectoryIntegrator>_jvm\bin\keytool-list -keystore idi.jks -storepass secret
bazzTBa{:
Keystore type: jksKeystore provider: SUN
Your keystore contains 1 entry:
ad_ca, Mon Nov 04 22:11:46 MST 2002, trustedCertEntry,Certificate fingerprint (MD5): A0:2D:0E:4A:68:34:7F:A0:21:36:78:65:A7:1B:25:55
P X \ ? $ _ D | ` j 8 5 w , k * A
http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/keytool.html
6. dC IBM Tivoli Directory Integrator T9CH0=hP4(D\?b#`-
root_directory/global.properties D~T(e\?bD~;C"\?bD~\kM\?
bD~`M#Z10"PfP,;'V jks `M#
#server authentication#examplejavax.net.ssl.trustStore=c::\test\idi.jksjavax.net.ssl.trustStorePassword=secretjavax.net.ssl.trustStoreType=jks#client authentication#examplejavax.net.ssl.keyStore=c:\test\idi.jksjavax.net.ssl.keyStorePassword=secretjavax.net.ssl.keyStoreType=jks
7. `- root_directory/_jvm/lib/security/java.security T(e2+)&LPm:
security.provider.1=sun.security.provider.Sunsecurity.provider.2=com.ibm.crypto.provider.IBMJCEsecurity.provider.3=com.ibm.crypto.provider.IBMJCA
8. * LDAP ,SwtC SSL#
Z 2 B IBM Tivoli Directory Integrator En 65
a. *A LDAP ,SwdCfe#
b. + LDAP URL |D*KZ 636#
c. !P9C SSL#
9. XBt/ IBM Tivoli Directory Integrator#
9C IDS ~qwZ IBM Tivoli Directory Integrator 5.2 i0w
._Pq!2+D JDBC ,S
IT9C IBM Tivoli Directory Integrator JDBC ,SwM IDS ~qwm~q!2+D
JDBC ,S#IDS ~qwm~9X JDBC URL ODX(N},b)N}f*m~gN
&my!,S#
Secure dbAccess !n9 IDS ~qw JDBC }/Lr\;9C SSL -i("= IDS
~qwD2+xg,S#SSL -i'V+2\?}V){"\?;;-iMTF\kD
m`iO#b)iO2Fw\kW~#IDS ~qwD5yw IDS ~qw'VD\kW
~Df6gB:
\?-i
RSA r Diffie-Hellman
}V){
RSA r ElGamal
TF\k
v 56-bit DES
v 112-bit }X DES
v 40-bit DES
v 128-bit Blowfish
{"**
SHA-1
IDS ~qw
*'0PX IDS ~qwD&\D|`E",k4PTB=h:
1. 20 IDS Server m~|#Z http://www.idssoftware.com OP 30 lTCm~#
":TCm~G IDS Server Lite "R;|,T SSL D'V#XkBX IDS Server
4.0 (Export) Evaluation f>Tq! SSL 'V#
2. DAfTCm~20;pa)D6IDS Server C'8O7(Userguid.doc)#TB8Z
GkKDBPa)D=(`XD8Z:
v :4.4 ,S URL;
v :4.5 9C IDS ~qw JDBC }/Lr;
v :5. Secure dbAccess;
r* IBM Tivoli Directory Integrator 5.2 9C JDK v1.4.1,k+ jdk14drv.jar S
IDS_root_directory\classes ?<4F= Integrator_root_directory\jars ?<#IDS Server
a)Kd|}/Lr jar Tkd|f>D JDK f]"RI\JCZ IBM Tivoli
Directory Integrator Dsxf>#
66 IBM Tivoli Directory Integrator 5.2:C'8O
3. |B IDS Server D idss.ini D~T%d20D*s#g{k*KPb*DBPV[
D y > d C , X k { C f I D S S e r v e r T C m ~ | ; p a ) D y > } ]
(IDSExamples.mdb)#
4. Zbv>}dCP,|B idss.ini D~T9|gBy>(vP?VD~Z]T>,Q
^DDtTTVeVem>):
[General]Port = 12 ;default 80 if not specifiedAddress = 0 ;0:bind to all address, or specify one IP addressListenBacklog = 64 ;DefSessionTime = 20 ;minutesDatabaseIdleTime = 10 ;minutesDBLoginTimeout = 45 ;seconds, 0 < DBLoginTimeout < 600 (10 min)Hosts = deny ;deny or grantDefMaxFieldSize = 16 ;kbytes, 1 < DefMaxFieldSize <= 1024 (1 meg)AccessLog = 0 ;0:none, 1:daily, 2:weekly, 3:monthly, 4:quarterlyKeepAliveTimeout = 15 ;seconds, 0 < KeepAliveTimeout < DefSessionTime*60TunnelKeepAlive = 1 ;0:disable, 1:enableDefaultDBMS = odbc ;odbc, oracle, sybase, sqlserverCustomDSNOnly = 0 ;0:use custom and system dsn, 1:use custom dsn onlySecureJDBCOnly = 0 ;0 or 1, applicable to .NET clients as well
DefaultDSN = IDSExamples
[dsn=IDSExamples]dbms=odbcdsn=IDSExamplesuid=pwd=ssl=shield=
[Alias]/classes/=./classes/
":ZXBt/~q.0,T .ini D~DNN|D<;az'#
5. kND6IDS Server C'8O7PD:5.3.2 idsskey.exe;,"KP idsskey.exe(z
I IDS Server +2/(C\?TMd|\ku}]D~D|nPLr)#
idsskey options modulus_size
":idsskey 512 4(K>}yXhDD~#
6. `kyzID Java D~ IDSServerPublicKey.java:
C:\IDSServer\Security>javac IDSServerPublicKey.java
7. +zID IDSServerPublicKey.class 4F=Q20 IBM Tivoli Directory Integrator D
M'z#ECZ jars ?<P#
9C IBM Tivoli Directory Integrator JDBC ,SwCJ IDSServer1. |B root_directory ?<PD ibmditk.bat T9 MYCLASSPATH odT ;jars ax#
b9 IBM Tivoli Directory Integrator i0w._\;R=+2\?T4P SSL U
V#
2. t/ IBM Tivoli Directory Integrator#
3. mSBDi0w._#
4. mSBD JDBC ,Sw#x|!q;v{F,"+|CZ Iterator ==#
5. dCbvBD,Sw:
Z 2 B IBM Tivoli Directory Integrator En 67
JDBC URLjdbc:ids://localhost:12/conn?dsn=’IDSExamples’ &ssl=1
JDBC }/Lr
ids.sql.IDSDriver
m{F departments
6. KPi0w._#za4=TBa{:
15:27:29 BEGIN Initialize connectors15:27:29 Initializing Component jdbc-idss15:27:30 END Initialize connectors15:27:30 No script for the Prolog after initialization of Connectors15:27:30 BEGIN Iteration15:27:30 Interval=0, MaxErrors=0, MaxRead=015:27:30 END Iteration15:27:30 BEGIN Exit TaskCallBlock15:27:30 END Exit TaskCallBlock15:27:30 BEGIN Connector Statistics15:27:30 [jdbc-idss] Get:415:27:30 Total: Get:415:27:30 END Connector Statistics15:27:30 No script for the Epilog15:27:30 terminated successfully (0 errors)15:27:30 AssemblyLine AssemblyLines/al1 terminated successfully15:27:30 Exit after auto-run requested************************
Process exit code = 2
tC SSL*9 IDS Server JDBC }/Lr\;9C Secure dbAccess,k+N} ssl=1 mS=
0,S URL1#{CbvN},}/Lr+"T9C SSL -i,S= IDS Server#g
{,S;Z(,r}/Lr+t/#f JDBC Yw,"Rds;;D}](|(0,S
URL1PD\k)G\#$D#kqX9C & {E(&)+KN}kd|N}Vt*#
}g:
jdbc:ids://localhost:12/conn?dsn=’IDSExamples’&ssl=1
|X(X,ssl= N}8(5 0"1 r k,C5mwGqtC Secure dbAccess T#$
IDS Server JDBC }/LrM9C2+WSVc(SSL)-iD IDS Server .dDx
g,S#1!hC* ssl=0,m>{C SSL#hC ssl=1 tC+2\? Secure
dbAccess#hC ssl=k tC#\\? Secure dbAccess#kN<6IDS Server C'8O7
PDZ 5 B(:Secure dbAccess;)MZ 6 B(:#\\? Secure dbAccess;)T
q!PXgNZ IDSJDBC }/LrP9C Secure dbAccess Dj8E"#
\a
IDS Server a)K9Cj< IBM Tivoli Directory Integrator JDBC ,Swq!2+ JDBC
,SD=(#(}8(I IDS Server 9X"CZa)G SSL(1!5)+2\? Secure
dbAccess M#\\? Secure dbAccess DX(N},bGI\D#
68 IBM Tivoli Directory Integrator 5.2:C'8O
9C NetDirect JDataConnect Z IBM Tivoli DirectoryIntegrator 5.2 i0w._Pq!2+D JDBC ,S
IT9C IBM Tivoli Directory Integrator JDBC ,SwM NetDirect JDataConnect m
~q!2+D JDBC ,S#JDataConnect m~SUX(N}w* JDBC ,SwD
DriverManager getConnection wCODtT#g{h*,CtTa8> JDataConnect 9
C SSL ,S#
hC* 1 D SSL N}9 JDataConnect \;9C SSL -i("= JDataGateway D
2+xg,S#JDataConnect 'V Netscape Dn|D SSL f>(f> 3)#JDataConnect
{CQ-9(Zwz/@wPD\ku'V,rK}/Lrs!T;\!#d| JDBC
SSL 5Vh*}/Lrs!TxXvST|, SSL \kuM\?;;yXhDc(#
rK,b)}/LrITDQ\$1d4(}Mxm,SBX#
JDataConnect IT9C({\kuM\?;;c(,r*wz/@wQ-mI|G#
NetDirect JDataConnect m~
*'0PX JDataConnect D&\D|`E",k4PTB=h:
1. 20TCm~|#Z http://www.j-netdirect.com/Downloads.html OP 30 lTCm~#
":TCm~|, SSL 'V#
2 . D A f T C m ~ 2 0 ; p a ) D 6 J D a t a C o n n e c t D 5 w } 7
(DocumentationIndex.html)#IZ IBM Tivoli Directory Integrator 5.2 9C JDK
v1.4.1,k+ JData1_2.jar S NetDirect_home_directory\JARs ?<4F=
Integrator_root_directory\jars ?<#NetDirect a)Kd|}/Lr jar Tkd|f
>D JDK f]"RI\JCZ IBM Tivoli Directory Integrator Dsxf>#
3. TB>}Y( DB2® ,,y>}]b;p20#
9C IBM Tivoli Directory Integrator JDBC ,SwCJ
JDataConnect1. t/ IBM Tivoli Directory Integrator#
2. mSBDi0w._#
3. mSBD JDBC ,Sw#x|!q;v{F,"+|CZ Iterator ==#
4. dCbvBD,Sw:
JDBC URLjdbc:JDataConnect://9.27.132.199/sample
8( DB2 DC'{M\k#
JDBC }/Lr
JData1_2.sql.$Driver
m{F EMPLOYEE
5. Z,SwD Hook !n(P,mSTBzkTf*,Sw4P Before InitializationE>:
jdirect.connector.setParam ("jdbcUseProperties","true");jdirect.connector.setParam ("jdbc.ssl",1);
6. KPi0w._#SSL ,SDi$G(}i4~qwODzYdv4jID#*hC
~qwODzY,kKP JDataAdmin.exe(;Z Program
Z 2 B IBM Tivoli Directory Integrator En 69
Files\NetDirect\JDataConnect\JDataAdmin D~PP)#4PhC,"ZKP IBM Tivoli
Directory Integrator i0w._.0XU~qw#zYD~PDa{4O%gB:
2003-07-21 10.51.04:46 Created a new connection in slot 1, SSL V32003-07-21 10.51.04:93 Connection 1 connected to sample2003-07-21 10.51.04:125 Metadata request: getColumns2003-07-21 10.51.04:265 SELECT * FROM EMPLOYEE2003-07-21 10.51.12:562 Disconnected connection 1 from data source
\a
JDataConnect a)K9Cj< IBM Tivoli Directory Integrator JDBC ,Swq!2+
JDBC ,SD=(#(}8(Im~9X"CZa) SSL CJDX(N},bGI\
D#
70 IBM Tivoli Directory Integrator 5.2:C'8O
Z 3 B IBM Tivoli Directory Integrator0dC`-w1
9C0dC`-w1
(}%w0dC/@w1PD3vn4r*|#g{CnGD~P,|aT>y|,
Dn,qr|ar*Cn#g{D~PP;Pn,r;\ZCD~PO%w;N(+
wj<D~Pa9z"TX|{CD~P,xz^(b4v)#D~PknG(}r*
/XU0Z!?~xp*4D#z9IT(}S0wfe1K%!qTs–>r*n!
q4r*3vn,rR|%w3vD~P(}g,Connectors)"!qB(,Sw ...#
zIT(}Z0dC/@w1!q3vTs"4 F2 |4+|X|{#r_,zIT+
wCn#ba9Cn;X|{#
":z^(X|{j<D~P#
g{zZ0dC/@w1Pr*3vn,r Details Pane adzCTsDE"#bFw
j8E"0Z#
?v Details Window <_PT:D$_8Ta)TQT>TsD`MD`X&\Dl
YCJ(B5O,IBM Tivoli Directory Integrator _Pm`$_8,?v<@5Z3v
X(D0Zr0PmX~1)#yP Details Window $_8y2PDGXU4%(T>
Z$_8DR`)#
© Copyright IBM Corp. 2003 71
PmX~
bE<qT>Ki0w._Dj8E"#Z Details Pane Ds_?V,zP1\"V;
v0PmX~1#?v0PmX~1<P;vkdX*D$_8,(#ITZ0PmX
~1DBfrOfR=#
*i4PmP3vnDj8E",;h%wCnT!q|#s`}0PmX~1'V
`v!q(Ctrl | + sjw|"Shift | + sjw|rShift | + =r|)#
g{zk*X|{0PmX~1PD3vn,IT(}4 F2 |xk`-==#P)
0PmX~1(}g0tT3d1D)9z\;+w3n4xP`-,r;h*<d
k#
!n(X~
XE Details Pane PE"Dwv?VD%?G;i!n(X~,gTBA;lUPy
>:
72 IBM Tivoli Directory Integrator 5.2:C'8O
|LX~
IBM Tivoli Directory Integrator _P`v Look & Feel !n:
v pt
v CDE/Motif
v Windows
k4PTBYwTCJ Look & Feel !n:
1. %wD~–>`-W!n#
2. %wb[!n(#
3. %w Look & Feel !n(#
4. %w Look & Feel B-r#
5. !q3v Look & Feel#
6. %w7(#
*i4b) Look & Feel !nD|3d,k*ATB URL:
pt http://java.sun.com/j2se/1.4/docs/api/javax/swing/doc-files/Key-Metal.html
CDE/Motifhttp://java.sun.com/j2se/1.4/docs/api/javax/swing/doc-files/Key-Motif.html
Windowshttp://java.sun.com/j2se/1.4/docs/api/javax/swing/doc-files/Key-Win32.html
":ZP)dP Tab |>mGO(V{DVNP,9C Ctrl | + Tab |IP;bj#
Zj8E"0Z.dF/
zr*0dC/@w1PDTs1aT> Details Window !n(#4PN;TBYw
IT+bjS;vTsP;Am;vTs:
v Z0dC/@w1P!qm;vTs#
v %wyZ{D Details Window !n(#
v 9C0wfe1$_8PDO;v!n(/0ZMB;v!n(/0Z4%#
v r*00ZPm1T0r(S0wK%1%w0Z->T>/~X Windows Pm)#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 73
;h%wyZ{D0ZTZ Details Pane P$n|#
wK%!q
D~
B(... 4(BDdC#
r*... r*VPDdC#
XU XU!(DdC#
#f #f!(DdC#
mf*...X|{"#f!(DdC#
74 IBM Tivoli Directory Integrator 5.2:C'8O
+?#f
+!(DdCD1>#f*BD{F#
nB r*n|CJ}DdC#
`-W!n
CZhCC'M53W!n#
Kv Kv IBM Tivoli Directory Integrator#
Ts
B(i0w._...Z AssemblyLines D~PP4(BDi0w._#
B(B~&mLr...Z EventHandlers D~PP4(BDB~&mLr#
B(,Sw...Z Connectors D~PP4(BD,Sw#
B(bvw...Z Parsers D~PP4(BDbvw#
B(E>...Z Scripts D~PP4(BDE>#
B( Include ...Z Includes D~PP4(BD Include(D~}C)#
B(G<...Z Logging D~PP4(BDU>N}#
r*n r*!(DTs(,Sw"i0w._H)#
>}n >}!(Dn#
0Z
53f"
r*VCf"E"#kNDZ 41 3D:53f";#
B;v0Z
T> Details Pane PB;vxq0Z#
O;v0Z
T> Details Pane PO;vxq0Z#
XU XU Details Pane P10Dxq0Z#
+?XU
XU Details Pane PD+?xq0Z#
T>/~X0ZPm
P;0ZPmDIST#
oz
oz xPXZwfeDE"Du<ozD~#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 75
XZ IBM Tivoli Directory IntegratorT>f>E"#
E>`-w0Z0 E > ` - w 0 Z 1 I Z N N I T d k E > D ; C R = , } g ,
Prologs/Epilogs"Hook"0_6tT3d1H#
bE<q4Ti0w._ Prolog(Z,Swu</.0)#
E>`-w0ZDYwMsr%DD>`-w,'Vj<tP(Ctrl+X)"4F
(Ctrl+C)M3y(Ctrl+V)l]|#b)|n2w*0E>`-w1$_8D4%
a)#
SB4D=v4%CZ7zMXv,fsGm;i4%CZiRMXBiR#P;`
-wPDT/;P4%P;`-wPDT/;P#
Cb?`-w`-:ex4%t/b?`-wTxPE>`-#b?`-wD!nI
S0wK%1D`-–>W!n!q(`-w!n()hC#
":g{ Look & Feel !n(Q!(ptw*wb,r!n(wbhCMwbU+G
ICD#k4PTBYw:
1. %wD~–>`-W!n#
2. %wb[!n(#
3. %w Look & Feel !n(#
4. %w Look & Feel B-r#
5. !qpt#
6. %w7(#
7. 5XAb[!n(#VZITZwbhCMwbU+!n(P|DwbMU+
hCK#
10,ICDwb;Pz7wb#
76 IBM Tivoli Directory Integrator 5.2:C'8O
dC(Config)
dC... GT0dC`-w1M~qw<IA!M&mD/I5VDhv#dCT>Z
IBM Tivoli Directory Integrator0dC`-w1Ds`D0dC/@w1P#
1c4(BDdC1,IBM Tivoli Directory Integrator a4(;i1!D~P#b)D
~P^(>}rX|{#xR,z4;Z(Zbv6p4(d|D~P#z\;4(
b)wdCVxDSD~P,9z\;+,Sw"bvw"i0w._Md|dCn
i/=_-ViP#
":
1. (}%ww$_8PDdC/@w4%IT~XrT>A;Dbv?V#bv4%
4O%s8r`4=rD=v}7#
2. 0dC/@w1GcNa9DwNS</@w,rKzI\^(Z;vdCP4=
yP*X#PX|`E",kNDZ 78 3D:dCD~P\m;#
4(;vBdCD~
v *AD~–>B(...#
v %ww$_8PD4(BDdCy4%
b)=(PD?;v<azz0!qdC}/Lr1T0r,dPzITxP!qT
9dCT XML q=f"#TZ IBM Tivoli Directory Integrator,^(4(ID 4.x q
=dC,+GITA!|G#
;)zwvC!q,MXkdkbvBdCDD~76#
IT(}dkS\\k+CdCD~S\#
":49z}Z4(BDdC,g{zdkVPD~{,rVPdCr*"RJV#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 77
r*VPDdC
v *AD~–>r*...#
v *AD~–>nB(;ICZn|r*}DdC)#
v %ww$_8PDr*VPDdC4%#
!qzk*r*DdC#CdCaT>Zs`D<=feP#
#fdC
v *AD~–>#f#
v %ww$_8PD#f!(DdC4%#
ba#f10r*DdC#
X|{dC
v *AD~–>mf*...
Zmf*... fePxhdCBD{F#ba4(;v-<dCD1>,+9CBD{
F#BDM-<dC<avVZ0dC/@w1P#
XUdC
v K%!qD~–>XU#
v %wwK%PDD~XU4%#
Zr*DdC(rD~P).d4F*X
k4PTBYw:
1. !qzk*4FD*X#
2. K%!q`-–>4F(riO| Ctrl+C)
3. !qzk*4FC*XD;C#
4. K%!q`-–>3y(riO| Ctrl+V)#
":
1. g{4F;vLPbi~(,Sw"bvwH)Di0w._,rb)i~a'%
=bi~4S,D*dIj+5}/D5}#
2. zIT(}9C`-–>tP(Ctrl+X)tP3vn4F/!(n,zf4F|#
dCD~P\m
IBM Tivoli Directory Integrator f=;i(iDD~P,b)D~P%d 5.2 .0f>
DdCK%!q(}g,AssemblyLines"Connectors"Parsers H)#z^(X|{b)j
<D~P,2^(>}|G#
4(BD*X(i0w._",Sw"bvwH)
!qzk*Z|Bf4(BD*XDD~P,;s4PTBYw.;:
v R|%w3v*X,;s!qB(*X#
v *ATs–>B(*X#
78 IBM Tivoli Directory Integrator 5.2:C'8O
v !qzk*ZdP4(nDD~P"%w0dC/@w1$_8PDekBTs4
%#
d P e l e m e n t G z k * m S D * X D ` M , } g ,
AssemblyLine"Connector"Parser"EventHandler H#
>}VPDD~PrdC*X(i0w._",Sw"bvwH)
!qzk*>}DD~P(rd|*X),;s4PTBYw.;:
v R|%w3vn"!q>}n#
v %w0dC/@w1$_8PD>}!(Ts4%#
":^(7zKYw#g{>}3v|,d|dC*XDD~P,rb)*X2a>
}#
/@s`<=fe
zITN!TB=(.;:
v %wD~PT_Dr*/[~<j#
v 9Cs}7|MR}7|#
Z0dC/@w1PT>*XDj8E"
Z0dC/@w1P%w3v*X#
KYwa9!(*XDj8E"T>Z Details Pane P#
X|{D~PrdC*X
v !q3v*X"%w0dC/@w1$_8PDX|{!(Ts4%,r4 F2 |#
i0w._
\mi0w._
i0w._G(}0dC/@w14(">}MX|{D(kNDZ 78 3D:dCD
~P\m;)#
i0w._dC
;)i0w._Z0j8E"0q1Pr*,4ITZbodCMCJ|DwV&
\#
jbxrBfG;i!n(X~,|G9zITCJTBi0w._&\:
v Hook
v }]w
v dC...
v wC/5X
v lic
v 3d
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 79
HookK!n(a)Twvi0w._ Hook DCJ(kNDZ 99 3D:Hook;)#|G|
(:
Prolog(Zu</,Sw.0MZu</,Sw.s)
Z,Swu</.0t/D Prolog TZdCyZ+]Ai0w._DN}D,
SwXpPC#mb;vZu</,Sw.sD Prolog 9z\liQr*D,
Sr"wN}D4,#
Epilog - XUs
bodkDE>Zi0w._#9s(I&rvm).st/#
XUks
K!n(Czdki0w._;8>#9(}g,S MMA XF(rSm;v
~qw)1*t/DE>#CE>9z\;mSe}zkT9WXU9i0w
._#
":g{i0w._C=;vXUksRCE>GUD,G4Mavm(bI
TZ Epilog P;&m)#
PX;,DIC hook D|`E",kNDZ 33 3D:Hook Pm;#
yPb) Hook <aa)z;v0E>`-w0Z1(QZZ 76 3D:E>`-w0
Z;Phv)#
}]w
boza"V0,SwPmX~1,,|GDj8E"#
":KPmPD,SwD3rG\X*D,r*|GGT%rBt/D#&Z Iterator =
=D,Sw}b#1 IBM Tivoli Directory Integrator Zi0w._Plb=|z
w1,|aWHt/|zw,x;\|GD;C#mb,|WH9C%KD|z
w4S|D}]4A!,SES|zwq!BDu?1=|zw=o}])K#
ZB;v|zO,PmPZ~v|zwt/,TK`F#
}Z,SwPmBfG;v0Z,|T>K$wu?DZ]T0+?vtT3d=w
PD,SwD{F#
80 IBM Tivoli Directory Integrator 5.2:C'8O
0}]w1!n(: Z}]w!n(P,IT\m,SwMd|i0w._i~#Z
K0ZDsO?VG,SwPm#PmBD4%P:
mSB,Sw
bozIT!qmS;vi0w._,Sw#b)nPDi0w._mwb)
i~@5ZX(i0w._#z2IT(}S0dC/@w1PO/;v,S
w4mS;vBDi0w._,Sw#
":g{"TO/i0w._}]w!n(PD},Swi~.bDNNi
~,rza4=BPms{":
zZ;vi0w._PvI>};v,Sw
mSE>i~
bozIT!qmS;vi0w._E>i(MGZi0w._4PZdDb
;1L*t/D;NE>)#b)nPDi0w._mwb)i~@5ZX(
i0w._#
>}!(Ts
>}i0w._i~#
X|{!(Ts
X|{i0w._i~#
OFTs
z9IT(}!q"O/i0w._,Sw4|D|GD3r#
BFTs
z9IT(}!q"O/i0w._,Sw4|D|GD3r#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 81
Z4(BDi0w._i~1,zIT!qGmSi0w._,Sw9GE>i#
dC...K!n(|,m`N},b)N}IC4hCCi0w._DYwXT,"XF|z
wDP*MZ0tT3d1Zd*'DtT#
b)N}|(:
STB;C0kNqN}
dkkSdPA!N}DD~D{Fr76,b)N}ICi0w._(rm
;vi0w._)#f#bGZ;,i0w._.dr_,;i0w._D;
,|z.d+]Yw}]D;V=(#
#fNqN}A
k0;vN}`,,;}CN}8(KSDoA!KE"#
U>3FE"1ddt
ZboIThC;vF}w5,f( IBM Tivoli Directory Integrator ~qw`
$1dT>;NxHF}#bTZZ&ms?}]1a)ISDH?5G#P
C#
nsA!}?(Iterator)CN}^FKKi0w._PDNN|zw+]x}]wDu?D}?#
82 IBM Tivoli Directory Integrator 5.2:C'8O
":g{Z|zwdk(}g,Z After GetNext Hook P)ZdT}]xP}
K,x<B;)dkTs}Z;x},r|zwaLxA!}]1=+8
(}?Du?+]xKB;v,Sw,r=oKdk}]/D)2#
nsms}
8(Ki0w._D]m6p#g{ms},}CN}PdkD5,ri0w
._U9#
ns5XDX4u?}
? 1 K i 0 w . _ P D ; v , S w Z } ] 4 P i R E " 1 ( } g ,
Delete"Update M Lookup ==),CN}Ma^F5Xu?D}?#
":C5G5Xu?D\},rK+CN}^F* 1 a9>}M|BYwzz
bk;=Ds{#bGr*:g{,Sw^(tk%vu?,G4>}r
|BMa<B`vu?;>}r|B,r_;TNNu?xP>}r|B
(b!vZ}]4D&\)#g{z+nsX4u?}N}D5^F* 1,
rz+^(Zbv=8Plb=b)iv#
E>oT
C B - r \ C z 8 ( Z K i 0 w . _ P 9 C N V E > o T
(Prolog"Epilog"hook"tT3d"E>i~ME>b)#
":zT;IT9CT;,E>oT`4Di~(,Sw"B~&mLrMb
vw),r* IBM Tivoli Directory Integrator *?;vQ`FE>Di~
<#td0E>}f&mLr1D;v%@5}#
|,yPD+V Prologg{tCC4!r,G4Zt/Ki0w._1+@@yP!P0T/|(1
4!rDE>b#
|(=S PrologboIT!q*|(D)0E>b1w*Ki0w._D=S Prolog#
":49E>b;P;jG*0T/|(1,z2IT(}CN}|(;vE
>b#
T/3dyPtT
bG;v=cDN},ITC4lYXhC_Pf]#=D}]4.dD3
d#g{tCCN},|D'{Mg,*?vi0w._,SwhCNb3d
(|{* * D%vtT)#
j8U>
9 IBM Tivoli Directory Integrator G<j8DYw{",b){"PzZTi
0w._xPJOoOrwT#
Null P*
KB-rCzv(gN&mZ0tT3d1PPvD(+Z3d}LP;PR
=D)tT#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 83
v 1!P*f_ IBM Tivoli Directory Integrator 9C`-–>W!nPDP*h
C#
v UV{.b6EtT5X1xP;vUV{.5#
v Null b6tT5X1;xP5(null 5)#
v >}b6EtTZ3dZd;>}#
v 5Cz8(;vZ?NKtT*'1*5XD5#
NULL 5
9zIT8(*Z0tT3d1Zd**'DtT5XD5#
":v1 Null P*hC* Value 1,KN}EP'#
wC/5X
boIT(eCi0w._DdkMdvN},Zbv!n(PVpG80u< work u
?1M0a{u?1#
zZ0u< work u?1P(e1i0w._t/1,#{+]=i0w._PDu?
TsPPD)tT#
a{u?#fi0w._4Pax1$wu?PICDtT#
84 IBM Tivoli Directory Integrator 5.2:C'8O
*KhCb)u?tTPmPD;n,WHXk!q}7D!n(#;)!(KZ{
DN}Pm,M\9CT>ZPmOfD$_8:
vS;vtT=wC/5XPm
vS;vtT=u?Pm#
SwC/5XPm>}!(tT
Su?PmP>};vtT#
`-10!(DtT
C4%r*0`-51T0r,CT0r9z\;*CtT4(`v5#
Z=VivB$wu?P5JO\P|`DtT,+b;Gn!*sDPm#
Kb,zITZu?tTPmP1S`-TBE"#
b?{F
boIT8(Zi0w._b?CtTD{F,9z\+|3d*b?N}
{#
Z?{F
bGCtTZi0w._Z?D{F#
Null P*
boIThC1&tTr_tT;P51D5P*#hCbvVNaXh
0Null P*1#!nP:
v Delete
v Null
v UV{.
v 5
v 1!P*
v ms
Null 5
g{tCC4!r,rCN}G?FD,"R1'CN}+<Bms#
o( boIT8(CtTD`M#
lic
PXlic&\D|`E",kNDZ 49 3D:lic/XBt/;#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 85
K!n(_PTBN}:
tClic
w*XCZ{vi0w._#K*XXk!PT9CNN0lic/XBt
/1&\M4PE"DNNG<#9P,*K\;xpi0w._D;,K
P,Xk8(;vj6#
j6 j 6 i 0 w . _ C Z s L X B t / # g { 4 8 ( , r 9 C
IDI_CP_AssemblyLine_name N=D1!j6#
TB5ICZlica{:
{F i0w._PD,SwD{F#
EnabledK4!rXk!PT90lic/XBt/1r\<Gj+G<PXKX(,
SwDNNE"#b9a9&Z Iterator ==D,SwMZi0w._jI&m
"Lx0xAB;v,Sw.0#f0$wu?1#
$wu?
!P$wu?4!ra8>0lic/XBt/1r\ZKX(,SwjId
Zi0w._PD$w.0G<0$wu?1DZ]M4,#
,SwXBt/E"
(}tC,SwXBt/E"4!r,I7#0lic/XBt/1G<NN
XhDE"T9K,Sw\;Zi0w._XBt/D}LPP?DXXB*
<d&m#byD;v>}MGdkD~PD;C#
3d
PX3d&\D|`E",kNDZ 8 3D:3d;#
86 IBM Tivoli Directory Integrator 5.2:C'8O
K!n(_PTBN}:
}]b
K/}Da{_PTB5:
{F i0w._PD,SwD{F#
G<QtC
XEQtC
G<
PXU>G<D|`E",kND6IBM Tivoli Directory Integrator 5.2:\m18O7
PD:G<MwT;#
bovi\hvgNT{"xPU>G<DN}#
yPDU>dC0Z<T,;V==Yw#TZ?;VU>dC,zIThC;vr
`vU>=8#b)#=,,,Z log4j.properties M executetask.properties D~PhC
DNN1!5,1<Gn/D#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 87
PXI\DG<=8DPm,kNDZ 115 3D:G<;#
U>6p: U>6pIT*
v ALL
v DEBUG
v INFO
v WARN
v ERROR
v FATAL
v OFF
ALL G<yPB~#DEBUG"INFO"WARN"ERROR M FATAL @N]v{"}K
D6p#&Z OFF 6p1;G<NNB~#
k"b,IBM Tivoli Directory Integrator logmsg wC INFO SpODU>#bb6E
+U>6phC* WARN r|M6pavT logmsg MyPj8U>hC#
bTi0w._
i0w._j8E"0ZD%?G$_8#
boza"V4%TCJTBYw:
88 IBM Tivoli Directory Integrator 5.2:C'8O
KP (}WH!qi0w._,;sZw$_8P%wKP4%,2IT1SS
0dC`-w1KPi0w._#
KPwTLr
ZwTa0PKPi0w._#
>feDoz
Koz4%ar*j8E"0ZP10r*DX(!n(Dozfe#
XUK0Z
XUi0w._j8E"0Z#
Z&mjI.0&mi0w._D~
v1i0w._U91D~XU#+G,zIT?F,SwXU"XBu</#Bf
Dzk,NZ?Nt/1<a4(;vBD~#D~{* file1.xml"file2.xml H(Y(
d? iteration Qu</* 0)#
iteration++;// close the file associated with the Connector named xmlxml.connector.terminate();// Associate a new filename to the Connector parameter filePathxml.connector.setParam("filePath","c:/tmp/file" + iteration + ".xml");// reinitialize the Connectorxml.connector.initialize(null);
KzkITEZc#{DNN;C,uAZ,Sw>m1P#
g{zQZ=S==Pr* AddOnly ,Sw,r setParam() ;GX*D,+GTZd
v==,terminate() M initialize() DrPI\9z*'H0D$w#
,Sw
,Sw\m
P=V=(IT4(,Sw:
v 1SZdCP(2F*0b,Sw1#kNDZ 78 3D:dCD~P\m;)#
v Zi0w._P(2Fw0i0w._,Sw1#PXgNri0w._mS,Sw
D|`E",kNDZ 81 3D:0}]w1!n(;)#
r_,g{zk*+dCP$HdCD,SwmS=i0w._,;h+C,SwS
0dC/@w1O/=i0w._D0,SwPm1P#
9Ci0w._PD,Sw(i0w._,Sw)
1z4(BD,Sw1,Xk4PTB=hTjIdhC:
hC==
g{z4(;v0i0w._,Sw1(Z}]w!n(P%wmSB,S
w),;sIZmS,SwT0rPhC==#;},g{z1SZ0dC/
@w1P4(,Sw,rITZ0,Swj8E"10Z%?DB-rPhC
C,SwD==#
hC`M
1z4(0i0w._,Sw11,ITZmS,SwT0rP1S!q`
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 89
M#g{z1SZ0dC/@w1P4(,Sw(r_g{zk*|D,Sw
D`M),rI9C0LP1T0r(1z%w0,Swj8E"10Z%?
Dr*LPdCT0r4%1T>)#
":g{zk*+bvw,SA,Sw,2IT(}0LP1dCT0rj
I#
dC boIhCX(Z!(D,Sw`MDN}#
PrologITZboekE>,Z,Swu</.0!n((boITZ4Pu</M
,Sw.0XBdCi0w._i~)M,Swu</.s!n(P<IT#
Epilog`4;)i0w._jI1+*t/DE>#;VdMDC(MGZXF+]
AwCDB~&mLrrb?53.0&mnU0$wu?1(}g,*Ki
0w._hCdvN})#
#= (edv4D#=,r"Vdk}]4D#=#
":XkZhC0tT3d1.0"VWc0}]41D#=(g{I\)#
dk/dv3d(tT3d)
boI*K,SwhC0tT3d1#
":ZNN1L,b)!n(P;P;vGn/D,b!vZ,SwD==
(}K CallReply ==9C=vTb)#kNDZ 91 3Tq!PX,Sw
==D|`E"#
d/? K!n(CZhC Delta &\,C&\T&Z Iterator ==D,SwGICD#
hC,Sw
0,Swj8E"10qa)K=vB-rCThCr|D,SwD0==1r04
,1#
yP IBM Tivoli Directory Integrator i~<G+rD,"Rg{GTZ,Sw,bb
6E|GZQ,SD}]4OHIT4PA!Yw,2IT4P4kYw#;},i
0w._PD?v,SwXk*X(}]w;VdX(DG+#bG(}hC,Sw
D==jID#PX,Sw==D|`E",kNDZ 11 3D:,Sw==;#
90 IBM Tivoli Directory Integrator 5.2:C'8O
,Sw==P:
AddOnlybVdv==f_ IBM Tivoli Directory Integrator K,Sw;r4mSBDE
",}g,4k3vD>D~#AddOnly ==a)KT0dvtT3d1DC
J(#
Delete &Z Delete ==D,Sw9Cd04Su~14iR}]4PDX(u?"+
|>}#Delete ==a)KT0dktT3d1DCJ(,9z\;li*>}
D}],ZtT6pxPP(#
IteratorIterator ==b6E,Swi4Q,SD4,;s?N5X;vu?CTi0w
._PD&m#}g,Q4S= SQL }]bD JDBC ,SwWH4P SELECT
od,;s5Xa{/PDyPG<,?N;u#Iterator ==a)KT0dk
tT3d1DCJ(#
":IBM Tivoli Directory Integrator DX|XT.;MG|?N;vu?X&
mE"#
LookupLookup ==CZZQ,SD}]4PiRkQZwPD}]PD3)tT`%
dD}]#;s,Sw+KE"[/(2Fw,S)=wP#Lookup ==a)
KT0dktT3d1DCJ(#
Update&Z Update ==D,SwWH4PiRYw(Ms&Z Delete M Lookup =
=)#g{R=%dD}],r,SwZbvu?O4P^DYw#g{4R
=%dDu?,r+Cu?mS=}]4P#Update ==a)KT0dvtT
3d1DCJ(#
CallReplyCallReply ==CZks}]4~q(}g Web ~q),b)}]4~q*s
z"MdkN}"fs5XksDE"#kd|==;,DG,CallReply a)
KT0dktT3d1M0dvtT3d1DCJ(#
}Kb)==Tb,,Sw9P}V4,:
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 91
b)4,_PTB,e:
EnabledbGyP,SwDj<(M1!)=="b6EC,SwQu</"KP}
##
Passiveg{z+3v,SwhC* Passive ==,r|aZi0w._t/1xPu<
/,+;aZi0w._KPD}LPt/#zITSE>wCC,Sw#
Disabled&Z Disabled ==D,SwH4u</,2;aZi0w._4PD}LPK
P#K==(#CZJOoOZd,TcZwT1r/bv=8,PzZ9N
NJbV?/#
*hCr|DLPD,SwD`M,k9CLP4%,byazzBfDT0r:
92 IBM Tivoli Directory Integrator 5.2:C'8O
bozIThCr^DTBLP5:
v y>8z(}g,*SDvy>~`rbTsLPN})#
v =}]4>mD,S#bCZ}]4;'VP^}?D,SDiv(}g,}]b
D IP KZri;mI$Jb)#CbV=(,i0w._PD`v,SwIT2m,
;,S#
v Dvbvw+kK,SwX*#
v tT3d(dkMdv)#
v 4Su~#
v Hook#
v d/?hC#
v #=(}]4#=),ICZ9(0tT3d1#
49zQ-ZH0DPmPhCK3vnDLP,2IT^D+?r?VQLPD
5#w*Z0tT3d1P}b#z^(SQLPD3dP>}NNtT,;}zI
T{C|G#
":g{zr [parent] hCKLPN},rbb6Ezk*S%KDB-rPhC*0y
>LP1(8z)DNN5PLPbv5#(}hC [parent] (eyPb)N}
(}K0y>LP1Tb),rzIT9bv,Swj+yZm;vi~#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 93
dC,Sw
ZdC...!n(PdC,Sw,za"V;iX(Zz}&mD,Sw`MDN}#
d;KT0rD5JZ]M<VafE,SwDd/xPy;,,+?v`M<Xk
|,j8U>4!r#g{!PKK4!r,r IBM Tivoli Directory Integrator aZ
U>D~P|,j8DYw{",|GZT IBM Tivoli Directory Integrator bv=8
xPJOoOrwT1G&sDoz#
":N;b)N}<IT(}9C setParam() wC1SSE>hC#*"VNNN}D
{F,;h%wdCT0rPDj)(bv&\5JOZ IBM Tivoli Directory
Integrator Ds`}T0rP<GICD)#;v0N}E"1T0raJVxz:
94 IBM Tivoli Directory Integrator 5.2:C'8O
boDZ;vVNGN}D5JZ?{F(+Z setParam() wCP9C)#
Z~vVNG;v4!r,|v(bvN}Gq+S8TsLP(ki4Z 0 ZBfD
Z]Tq!PXLP|j8DE")#
":?vN}<5P(;D0N}E"1T0r#
"V}]4#=
#=!n(rzT>K0PmX~1,dPzITV$4(}]4#=,rC,Sw
*z"V|:
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 95
KPm%?D4%*za)KTTB&\DCJ(:
r#=mStT
r#=mSBtT#
>}!(DtT
S#=>}!(DtT#
,S=}]4
,S=}]4#
A!B;vu?
K4%A!B;vu?"CZCTsPR=DtTndCPm#
":b;aA}H0PvDtT#*jIKYw,zXk!qG)tT"%w
>}!(DtT4%#
>}yP#=tT
>}yP#=tT#
XU=}]4D,S
XU,S#
"V}]4D#=
"GyP}]4<'VK&\#g{"zbViv,r(;D!nG,S"9
CA!B;vu?4%#
mb,zIT1S`-CxqPmD3)P##=PmVN_PTBbe:
{F bGA!C}]1Z conn Ts(,SwD}]4JdwD>Xf"Ts)PT
>DtT{F#|9G,SwZ4kYwZd9CD{F#
Java `
bG IBM Tivoli Directory Integrator +KtTm>*D Java TsD`M#K
VNG;AD#
>zo(
KP8(CtTX(Z}]4D`M#KVNG;AD#
y> ZKz+4{CtTDy>5#
96 IBM Tivoli Directory Integrator 5.2:C'8O
h*dk#
g{}]4Ph*CtT,r!PCr#g{A!Yw(GetNext"Lookup H
H);PR=CtT,r|<B;vms#
h*dv#
g{=}]4#=dvh*CtT,"RZ4kYwZdCtTXkvVZ
conn TsP,r!PCr#g{;P!P,rb+<B;vms#
hCtT3d
Z}]w!n(BP0tT3d1,|G8(Z}]wM,Sw.d+MD)tTD
f6#
;v,Sw_P=v3d,;vCZdkxm;vCZdv#;x,ZNN1L,b
)3dP;P;vIC,b!vZ,SwD==:
v 0dk3d1CZ Iterator r Lookup ==#
v 0dv3d1CZ AddOnly"Update r Delete ==#
v =_<ICZ CallReply ==#
":CallReply G}b#0dk3d1M0dv3d1T|<GICD#
PX,Sw==D|`j8E",kNDZ 11 3D:,Sw==;#
0tT3d1PmG;v0PmX~1(QZZ 72 3D:PmX~;Phv)#IT
Cm`=(&mCPm:
v 0tT3d1$_8PDmSBtTAtT3d4%#
v 0tT3d1$_8PDStT3d>}!(DtT4%#
v S0,Sw#=10ZO/;vr`vtT#
v S0$wu?10ZO/;vr`vtT#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 97
":g{zk*+tTO/=0tT3d1P,rzXk+CtTEZVPDnrj
b8O#
0tT3d1$_8P9PTB4%:
Z0Pm1M0j8S<1dP;
K4%Z!qPmM0tT3d1j8E"0Z.dP;T>#
T>,SwtTPm
1z!q3vtT1aC0tT3dhC10Zzf0,Sw#=10Z#9
CK4%IYNV40#=10Z#z9IT(}Z%w3vtT14 Ctrl |
(Ctrl | + %wtT)4jIKYw#
4P#=lY"V
%wK4%azzTBYw:
1. ,Sw,SA}]4#
2. ,Sw4P0B;=1Yw#
3. ,SwXU,S#
b)k,SwD#=!n(PICDYw`,#
":bI\;cT"V}]4PyPXhDtT#}g,TZ LDAP ?<,A
!DZ;vu?((} GetNext Yw)I\;a|,yPZ{DtT(|
uAI\;tZ}7D`)#
1zZ0tT3d1P!q3vtT1aC0tT3dhC10Zzf0,Sw#
=10Z#
K0ZD%?P=v4!r:
_63d
g{ztCK!n,raC0E>`-w10Zzf0tT3dhC10Z,
dPzITdk*Z?N3d}LP}CKtT1t/DE>,N#KE>X
98 IBM Tivoli Directory Integrator 5.2:C'8O
k5X;v5,C5+3d= ret.value d?PDtTP#bITG3vtT,
r;G5X5#;) JavaScript >}gB:
ret.value = 42;ret.value = myAttribute;ret.value = work.getString(FirstName) + " " + work.getString("LastName");
QtC g{z!Vbvr,rKtT;aZ0tT3d1D}LPxP3d#
mb,9P;vB-rCT!q Null P*,}g,IBM Tivoli Directory Integrator g
N&m*'DtT#
boD!nkIT*i0w._hCDG)`,(kNDZ 83 3),bSe}!n#
K!qae}CN}PDhC,V4LPDP*(Sy>8z - kNDZ 92 3OD
0LP1T0r)#
b;PBfG0,Sw#=1KTm#bozIT!qNN}?Dk*w*100t
T3d1PmP!(DtTD55XDn#
":(}%wH0hvDP;S<4%,r(}Z%w0tT3d1PD3vtT1
4 Ctrl |(Ctrl | + %wtT),zITYNP;X0,Sw#=0Z1#
HookHook !n(rzJVK;5P,Sw4PZdDP>c,dPzITmST:+*t
/DE>#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 99
Hook $_8|,TB4%:
>}!(D Hook%wK4%I9!(D Hook >}WcDE>#
Z`-wM Hook wNS<dP;
K4%ZwNS<M Hook `-wS<.dP;T>,xz|`DA;UdT
`4M`-E>#
Hook D0E>`-w10ZOfP=v4!r:
QtC 1zZ3v Hook PdkE>1,CraT/!P#zIT(}{C3v Hook
Tf* IBM Tivoli Directory Integrator ;*t/|#bTLPD Hook 2P'#
wTPO
g{z!PCr,r1zZwTLrPKPKi0w._1,IBM Tivoli
Directory Integrator aZbo#94P#
Hook IV*}v?V:
PrologbozIT"Vm` Hook,}g Before Initialize(xTZ IBM Tivoli
Directory Integrator ==PD,Sw,r* Before Selection)#}KXbiv
.b(}g Before Selection Hook),bv?VTZyP,Sw<G`,D#
}]w(connector_mode)
bv?V|,;)+2 Hook,}g Before Execute M Override mode_operation
(}g,TZ&Z Lookup ==D,SwG Override Lookup,xTZ&Z
Iterator ==D,SwG Override GetNext)#9P Default Success M
Default On Error Hook#mb,P;)X(Z==D Hook#
100 IBM Tivoli Directory Integrator 5.2:C'8O
Epilogboza"V Before Close(m>Zk}]4D,SXU.0)"After CloseMb?D On Error Hook#bv On Error Hook ITZzDbP9C,w*
&m4ZNNd| On Error Hook P6qDmsD1!_-#
Zs`}ivB,bvwNS<P Hook D3rm>T|GxP@@D3r#
Hook ITSd|,SwLP(kNDZ 92 3OhvDLPdCT0r)#;},zT
;IT(}Z0E>`-w10Zdk;)E>4XhLPDE>#
g{zk*>}KXhDE>"X4*LPDE>P*,;h(}!qC Hook "%w
>}!(D Hook 4%+|>}#
DeltaC!n(vT&Z Iterator ==D,SwIC,"RITZdPhCd/?&\DN}#
kNDZ 38 3D:Delta;#
tCd/?9,Sw4(",$yP;|zD}]D;v>Xb,"9,Sw7(Z
?NKP.d}]Gq;|D"mSr>}(}g,*')#
b,Sw
}Kri0w._mS,SwTb,z9IT1SZ0dC/@w1P4(,Sw#
b),SwIZi0w._P9C,"RTb)bi~wvD|DaZ9C|GDi
0w._P43v4(}Gz2GLPXT)#
ZZ 89 3D:9Ci0w._PD,Sw(i0w._,Sw);PhvDi0w.
_,SwD,y&\,Z&m0b,Sw112GICD#w*DxpG,3v0b
,Sw1D0,Swj8E"10Zadz{v0j8E"0q1(IZ;P*T>
Di0w._E")#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 101
E>`FD,Sw
9CdP;V'VDE>oTIT5V,Sw#bG(}4(,Sw(HITZ0d
C/@w1,2IT1SZi0w._P)M!q0E>,Sw1`M4jID#
;s,1zr*K,SwDdC... !n(1,za4{TBA;:
102 IBM Tivoli Directory Integrator 5.2:C'8O
K0ZPP=v!n(:
N} bozIT(e*9CDE>oT,Gq|,b?E>D~rG4T0E>
b1DD~#
E> *zD,Sw`4E>#
":49Q-!(KZi0w._P9CD;VE>oT,zT;IT9CT;,o
T`4Di~(}g,Swrbvw)#
bvw
bvwk+M,Sw;pC4bMrzI,SwVZwO+]DZ]#1zT<bv
DVZwky!qDbvw;;B1,rz+qC sun.io.MalformedInputException#
}g,19C0#=1!n(/@;vD~1,I\aT>ms{"#
zITr*BDbvw,Mszr*NNd|i0w._*X;y#PXj8E",
kNDZ 78 3D:dCD~P\m;#
1zr*BDbvw1,za4=TB0j8E"10Z:
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 103
K0j8E"10Zaf?vbvwD;,xPyd/#
B~&mLr
B~&mLrG IBM Tivoli Directory Integrator CZ4(51/Ibv=8Di~#
|G_P0}]4Jdw1?~,9|G\;r*=X(}]4D,S,bk,Sw
`F#;},B~&mLr;as,SwGyZ4O4P%vYw,|GH}4TQ
,SD}]4D3VB~(*#B~&mLr`MD>}gB:
v (1w(}g,Z8(D1ddt=QDB~&mLr)#
v (} IP KZxkD}]#P`v,SA IP KZDB~&mLr,|( HTTP M
TCP B~&mLr#
v =o8(JdDJ~(SMTP B~&mLr)#
v ?<|B(LDAP B~&mLr)#
v T>Z$)DwbD{"SPPD{"(JMS B~&mLr)#
B~&mLrG1SZ0dC/@w1P4(D#
B~&mLrSZ;)zr*3vB~&mLr,zaZ0j8E"0q1P4=TB0Z:
104 IBM Tivoli Directory Integrator 5.2:C'8O
B~&mLrj8E"0ZrzJVKDv!n(:
v Hook
v Yw3d
v G<
v dC...
dC
ZdC... !n(P,zIThCbV`MDB~&mLrDN},x?vB~&mLr
<P;,DdCT0r#
;},P=v4!raT>ZyPB~&mLrDdC... !n(P:
T/t/~q
g{!PKr,r;*9CKdCt/ IBM Tivoli Directory Integrator KP1
~qwD5},KB~&mLrMaT/Xt/(}G9C|nPN}t/4
h9B~&mLrDt/)#494hCK4!r,zT;IT(}Zw$_
8P%wKP4%,rZB~&mLrDjb8P%wKP4%,41SS
IBM Tivoli Directory Integrator *"73t/CB~&mLr#
j8U>
IZ=x,Sw,K4!raf* IBM Tivoli Directory Integrator +j8D{
"4kU>#ZT IBM Tivoli Directory Integrator dCxPJOoO1,bX
pPC#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 105
Yw3d
B~&mLrPDYw3d!n(Mi0w._D}]w!n(`F#boI8(B
~&mLrgNTxkDB~wv4&#bv!n(V*}vxr:
v Yw3d
v u~
v Ywn
zIT9CPm%?D$_844(M\m0Yw3dn1#b)nD3rG\X*
D,"RaT%rBX@@|G#
d;nC\T3V=(|{0Yw3dn1,bya9CZB~&mPWZmb|G
D&\,+0Yw3dn1ITFwNNz26D{F#
TZ?v0Yw3dn1,z<IThC;iu~#b)u~GI@@* True r
False D<{mo=,"R-#}CkB~PXDB~&mLrSU=DE"#zIT
9CKPm%?D$_844(">}MXFu~D3r#
y]<{@@Da{,a4Pu~* True ru~* False Yw#TYwD4(">
}T0Er<IT9CYwPmX~%?D$_84jI#
":g{4hCu~,r<U4Pu~* True Yw#
On Error !n(CZdkZ"zms1t/DE>#
u~: 1z4(BDu~1,za4=TBDT0r:
106 IBM Tivoli Directory Integrator 5.2:C'8O
bozIT!q9C0r%u~1T0r,rT:`4u~E>#
0r%u~1T0rPPTBVN:
tT/XT{F
bGzk*Zu~PxPbTDB~Ts(B~&mLrPDB~`XE"f
"Zbo)PD0tT1r0XT1D{F#
Yw} bozIT!q<{KcD`M:
v equals
v startsWith
v contains
v endsWith
v hasValue
hasValue CZZ`5DtTrXTPiR%v5#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 107
5(Value)
dk*ktT/XT%dD5#
s4Yw}
zIT!PKrTs4Yw}#
xVs!4
(#D%dGxVs!4D#g{zhCK4!r,rZ%dPs!4\X
*#
XEu~PmX~D%?Pm`4!r:
NN%d
b6Eg{NNu~%d,r+XF+]=u~ True !n((b6Eu~.
dD<{Kc OR)#qryPu~<Xk%d(AND)#
D! K4!rf* IBM Tivoli Directory Integrator g{u~@@* true,r_g
{IZ false @@a{x4P%vYw,r^(xPB;=&m(}g,^(
=PmPB;v0Yw3dn1)#qr,Z10njI&ms,XF+]=
B;v0Yw3dn1#
Q{C hCK4!rT{CK0Yw3dn1#
Yw: zIT!q8V`MDYw:
&Cbvw
9z\;wCbvwT9lVZw(}g,tTV{.5,`F HTTP w
e),rCTbMKa9#
(FE>
T>0E>`-w10Z,dPzIT4(T:DB~&m_-#
108 IBM Tivoli Directory Integrator 5.2:C'8O
*"B~Ts
+B~TsDZ]G<=U>0Z#
>}XT/tT
SB~Ts}%tTrXT#
KPi0w._
a);vr%zF,CTt/i0w._"(}B~Ts+]dN}T0tC
|4l=KP,rH}i0w._#9"lwa{#
hCXT/tT
ZB~TsPhCtTMXTD5r4(BDtTMXT#
U9&mLr
#9B~&mLr#
Hookk,Sw Hook Pm`F,B~&mLr_PTB Hook ICTE>`F(kNDZ
99 3D:Hook;Tq!|`PX&m Hook DE"):
PrologProlog ZXF+]=Z;v0Yw3dn1.0KP#
EpilogEpilog Z0Yw3dn1jI&m.sKP#
XUks
K!n(Czdk*Z0Yw3dn1#9&m1t/DE>#
E>`FDB~&mLr
Msd| IBM Tivoli Directory Integrator i~;y,B~&mLr2IT9CE>o
T5V#5JO,;)j<B~&mLrMGE>`FD#
E>b
":|;GE>i~b+`1ZzITSzDE>CJD&\b#
zZ0dC/@w1P4(DE>TZ|,ZzDi0w._MB~&mLrPw*
Prolog DE>IC(}g,ZCnt/1t/DE>)#
gZs`<=8PYwNNd|n;y\mzD0E>b1n#kNDZ 78 3D:d
CD~P\m;Tq!|`j8E"#
0E>b1D0j8E"0q1b[gB:
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 109
bozIT!qGqKE>*~=|,ZyPi0w._MB~&mLrP#g{h
CKK4!r,rCE>aI*QZdC... !n(PtC|,yP+V Prolog j>D
?vi0w._D prolog#
g{4tC~=|,4!r,rCE>XkIi0w._9C|,d| Prolog N}
(dC... !n(Bf)T=X|,#
Java b
IBM Tivoli Directory Integrator 9z\;(}|,T:D Java b4+BD&\ECZ
~qwD%?#
bG(}Z0dC/@w1Pr* JavaLibraries D~P4jID#53arza)Q|
,bDPm#
110 IBM Tivoli Directory Integrator 5.2:C'8O
;\9C0j8E"0q1jbxrPD$_844(M>} JavaLibraries#
;)z4(KBD Java bu?,;hZzk*`-DxqVNP%w"4 F2 |#r
_z9IT+wCVN4xk`-4,#boP=vVN)zdk:
{F TsD{F,CTsTZzDE>IC,"rza)TbD/}DCJ(#
5(Value)
zZbodk Java `D{F,C`kbvBDE>TsX*#
":*K\;|,BD Java b,zXk+bD .jar D~ECZ IBM Tivoli Directory
Integrator 20?<D jars S?<P,r jars BfVPrBDS?<P#
W!n(Java tT)
zDC'W!n(TZ0dC`-w1)f"ZIZw?<PR=D .ibmdi D~P#K
D~ZZ;Nt/ ibmditk 1T/4(#|(eKTBVN:
window.*T0rDb[,}gs!";C"Vn&HH#
IT(}D~ –> `-W!nCJCT0r#||,KTZ10dCD~P'D!n
(dP;)GZ 112 3D:Java XT;)#IT(}%wj)R=Z?{FM;)oz#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 111
Java XT
Java XTG;v8(XTPm0dX*5DdCD~?V#XTmS= Java KP1X
TP,rKzITZbo|DrmSX(Z Java rd|Z}=DXT#,1,zaR
=X(Z IBM Tivoli Directory Integrator DXT,b)XT"w IBM Tivoli Directory
Integrator ~qwM0dC`-w1DP*==#
b)5GdCD~D;?V,"RI\fD~xl#z^(|,b)5#g{zk*
b)5TZ20G+VD,zITZ global.properties D~PhC|G#kND6IBM
Tivoli Directory Integrator 5.2:\m18O7PD:global.properties D~;#P)XT
9ITZD~–>`-W!nBfR=#%wj)Ii4|GDH[ Java XT(#fZ
zD .ibmdi D~P)#
b)5PD;)h*XBt/0dC`-w1Tz'#
(F0dC`-w1D Java XTT0~qw(#IZTB}v;C.;R=:
v CZ0dC`-w1dCD ibmdi D~,gZD~–>`-W!nPy{#
v 0Java XT1?VBDdCD~(TdCD~P')#
v CZ;c20XTD global.properties D~#
com.ibm.di.server.maxThreadsRunningg{xPKhC,|a^FJm,1KPD_L}#*K@9@x,+aZo
=ns}.st/BD_L,+a\}#
mail.smtp.hostSTRING:g{9C system.sendmail /},rb&1G*9CD SMTP ~q
w#
rsadmin.attribute.nullBehaviorSTRING:g{,Sw;PSWcD}]4qCtT5(}g,;Pg0E
k),rXZ&Ca)Dvi0w._fZ~eT#O(5* Empty String"
Null"Delete r Value#PXb)5Dbe,kNDZ 46 3D:Null P*;#
rsadmin.attribute.nullBehaviorValueSTRING:g{ rsadmin.attribute.nullBehavior hC* Value,rbMG5#
rsadmin.encryptionBOOLEAN:g{z#{TdCD~xPS\,r8(* true#Zr*r#f
dCD~1,+a>zdk\k#
":IBM Tivoli Directory Integrator ^(bxI\k#$DdCD~#g{z
|GK\k,rD~I\a*'#KdCD~9C DES xPS\#
|,
IThCdCT|,d|dCDdC*X#b9ChCPkbI*I\,bP|,I
Tf"Z2,D~qwODi~"E>T0d|dC*X,+T;TjIi/D/I
(RIC#
zIT4(M\mzD Include,Mg,d|dCn;y,}g,SwMi0w._#k
NDZ 78 3D:dCD~P\m;Tq!PXgN4PKYwDj8E"#;)zm
SK Include,za4=BfDA;:
112 IBM Tivoli Directory Integrator 5.2:C'8O
VZ(;ICD!nG0dC}/Lr1N}#!qzXkCTo=KdCDdCf
"e5a9(CSA)}/Lr#
VZ;P=v!n:IBM Directory Integrator 5.1.1 .0DI= .cfg q=M XML#
":IZEt-r .cfg q=vw*;A'V#(iz9C XML q=4+dCE"f
"=D~#
;)z!qKdC}/Lr,zaP|`DN}#VZzITTdCD~hCD~{
r URL,T0b\\k(g{}Z9C)#zITZdCP5PzZ{}?D Include,
"Rb) Include ITTwV==f",(};,DdC}/LrCJ#
b?XT
b?XTG;v&\,|9zITC2+Dq=Z0dC1.bf"tPE",+G
T;9d#VIdCT#
+b?XTksIITZ{vbv=8P9CD+V53d?#1;,zITSE>
CJb?XT,b9z\;9zkI*IC}]}/,"y];vr`vb)XTD
5|D|D&\#;x,0b?XT1n?sDC>Gw*i~(}g,Sw"bv
wMB~&mLr)dCPDN}5#
hCb?XT
zXkvDW~BiG(ef"b?XTD;C,T0zGq#{S\CE"#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 113
%w0j8E"10q%?D$_8PD!qb?XTD~4%#
bar*TBT0r:
ZKzhC0b?XT1D~{,;sb)D~{Tkz4(DNNXT`,D==
T>Z0b?XT1PmP#XTD~Df6+I*;vF* user.properties Db?X
T:
user.properties <file path: e.g. C:\IBMDirectoryIntegrator\myProps.properties>
ITg`-NNd|nGy4`-Cn,=(G!qxqVN"4B F2,rr%X+w
CVNTxP`-#
114 IBM Tivoli Directory Integrator 5.2:C'8O
\mb?XT
mSM>}b?XTG(}9C0j8E"10qjbxrPD$_845VD#R
GXpPK$DG#f4%,|a;zT8(DXTD~vvD|D#
":1z`-b?XT1,CE"Tf"ZZfP,1Az+d#f=D~#g{z
QvvK|D,;st/K9CNNb)5Di0w._rB~&mLr,rz
vvD|D+;ICZ~qw#*K7#z}ZCZ{Db?XT5bTbv=
8,kG!(Z#f|G#
G<
PXU>G<D|`E",kND6IBM Tivoli Directory Integrator 5.2:\m18O7
PD:G<MwT;#
bovi\hvgNT{"xPU>G<DN}#
yPDU>dC0Z<T,;V==Yw#TZ?;VU>dC,zIThC;vr
`vU>=8#b)#=,,,Z log4j.properties M executetask.properties D~PhC
DNN1!5,1<Gn/D#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 115
I\DU>#=gBy>:
IDIFileRollerP1rzk+U>G<=D~,+*^FD~D}?,r*|Ga{zEL#
IDIFileRoller * Server D?;NKPzI;vBDD~#53;#f8(}?
DH0U>#g{zDU>;|{* mylog.txt,"RzkszI 2 z,G4Z
KPK 3 NTszMPK mylog.txt(n|;NKP)MD~ mylog.txt.1 M
mylog.txt.2,dPmylog.txt.2 GnIDU>#SbcO4,;P|`DD~z
I,;GD~{`,D|Bf>#k#V8]D~D=z#
IDIFileRoller _PTBN}:
D~76
*G<DD~D{F#C76k20 IBM Tivoli Directory Integrator D
;CPX#Server D{Ff;D~{P9CDXbj {0}#`FDiv
G53*zzID(;j6f;D~{P9CD {1}#
8]D~}
g{zDD~76G mylog.txt,"R!qK 2 v8]D~,G4Z0
=NKPsDZ}NKP1,dD~{;X|{* mylog.txt.1 M
mylog.txt.2#
<V v(U>{"Dq=#!nP:
v #=(Zzk(FG<{"D==19C)
v r%(v|,U>6pM{"Dq=)
v HTML(4(;v HTML D~,dP|,;)`XD1dE""_
LE""U>6p"`pT0{")
v XML(`F HTML,+9CT{FUd*0:D log4j zI XML
D~)
116 IBM Tivoli Directory Integrator 5.2:C'8O
#= vZ<VG#=19C#kND6IBM Tivoli Directory Integrator 5.2:
\m18O7PD:4(zT:DU>_T;#
U>6p
U>{"DOXT6p#!nP(S6pn_=nMDE"):
v DEBUG
v INFO
v WARN
v ERROR
v FATAL
U>tC
%wTtCC appender D9C#
XF( U>G<=XF((j<dv)#bGZzt/~qw(ibmdisrv)D0ZP,
rZ0dC`-w1D4PNq0Z(ibmditk)P#XF(PBPN}:
<V N{0DD IDIFileRoller#
#= N{0DD IDIFileRoller#
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
D~ U>G<=D~#D~PBPN}:
D~76
N{0DD IDIFileRoller#
=S=D~
%wT+U>{"=S=D~#g{;!PCN},D~;2G#
<V N{0DD IDIFileRoller#
#= N{0DD IDIFileRoller#
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
53U>(Syslog)
9 IBM Tivoli Directory Integrator +U>G<= Unix Syslog#53U>PB
PN}:
wz{/IP X7
+U>G<=dPDwz#
53U>$_
ZB-PmPR=DO($_#Xk\=z}Z+U>G<=dPD
wz'V#
r!$_V{.
g{hCD0,r!v4D{"|(&CLrD$_{#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 117
<V N{0DD IDIFileRoller#
#= N{0DD IDIFileRoller#
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
NTEventLog9&CLr\;9C Windows NT® B~&mLr4G<U>(Z Windows =
(O)#NTEventLog PBPN}:
<V N{0DD IDIFileRoller#
#= N{0DD IDIFileRoller#
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
DailyRollingFileDailyRollingFile #fID~,"Zd{FPxP;vUZAG#|(#Z=S
=D~N}hC* true D1r9C#DailyRollingFile PBPN}:
D~76
N{0DD IDIFileRoller#
=S=D~
4(BD~r=S=VPDD~,b!vZGq!PKn#19C
DailyRollingFile 1,(#G!PKnD#
UZ#=
D~`C-7;N#9CKB-Pm4!qv((SVS=B)#}
g , g { D ~ 7 6 h C * e x a m p l e . l o g , R U Z # = h C *
’.’yyyy-MM-dd,rZ 2003 j 10 B 31 UDg9,U>G<D~
example.log ;4F= example.log.2003-10-31#2003 j 11 B 1 UD
U>G<TILxZ example.log O,1=|v/=B;l#
<V N{0DD IDIFileRoller#
#= N{0DD IDIFileRoller#
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
MOBJ AMC T>KvI MOBJ G<wzIDU>D~#MOBJ PBPN}:
#= 8(I LOG4J (eDU>q=#1!5G:
"%d{ISO8601} %-5p [%c] - %m%n"
CVNPd|IC5G:
"%d{HH:mm:ss} %p [%t] - %m%n""%p [%t] %c %d{HH:mm:ss,SSS} - %m%n"
118 IBM Tivoli Directory Integrator 5.2:C'8O
U>6p
N{0DD IDIFileRoller#
U>tC
N{0DD IDIFileRoller#
U>6p
U>6pIT*
v ALL
v DEBUG
v INFO
v WARN
v ERROR
v FATAL
v OFF
ALL G<yPB~#DEBUG"INFO"WARN"ERROR M FATAL @N]v{"}K
D6p#&Z OFF 6p1;G<NNB~#
k"b,IBM Tivoli Directory Integrator logmsg wC INFO SpODU>#bb6E
+U>6phC* WARN r|M6pavT logmsg MyPj8U>hC#
,SwMbvw!n(ODN}j)
g{z+bj#tZj)O,ra/v$_a>,T>;)ozE"#
L+Dj)D>m>KN}D5GLPD#12G;vLPDN}1,D>j)+d
*Z+#
6+Dj)D>m>K5G;vN}#
g{z%wKj),r+C=PXKN}D;)E",|(N}DZ?{F#1z#
{(}E>`FhC,SwN}1,bI\\PC#
Z 3 B IBM Tivoli Directory Integrator0dC`-w1 119
120 IBM Tivoli Directory Integrator 5.2:C'8O
Z 4 B >}
*9CCZ9d>VaD>},zIT*A20?<PD root_directory/examples ?<#
VBScript ,SwM Microsoft Outlook *5,Sw
K>}T>KgN9C VBScript Y] Outlook *5#K>}2ICw IBM Tivoli
Directory Integrator Microsoft Outlook *5,Sw#
>}zk
kNDf IBM Tivoli Directory Integrator ;p;6D Microsoft Outlook *5,SwD
E>!n(BfDzk#|G;vID>},+G|rz9>K,SwPZ]DsB
<k#
’’ This script implements all the necessary functions for accessing’ the Contacts register in Microsoft Outlook Contacts Connector.’ Assumes that the number of entries in contact folder is constant
for the run
set ol = CreateObject ("Outlook.Application")set ns = ol.GetNameSpace ("MAPI")set contacts = ns.getDefaultFolder (10)
counter = 0
sub selectEntries()counter = 0end sub
sub getNextEntry ()’ Increase current positioncounter = counter + 1
if (counter > contacts.Items.count) then’End of itemsresult.setStatus 0result.setMessage "End of input"elseif (contacts.Items.Item(counter).Class = 40) then’ 40 is contacts itempopulateEntry entry, contacts.Items.Item(counter)else’ skipping non contact elementsgetNextEntryend ifend sub
sub modEntry ()flt = "[" & search.getFirstCriteriaName() & "] =’" & search.getFirstCriteriaValue() & "’"set item = contacts.Items.Find ( flt )if item is nothing thenresult.setStatus 2result.setMessage "Not found"exit subend if
populateItem entry, item
© Copyright IBM Corp. 2003 121
item.Saveend sub
sub deleteEntry ()flt = "[" & search.getFirstCriteriaName() & "] =’" & search.getFirstCriteriaValue() & "’"set item = contacts.Items.Find ( flt )if item is nothing thenresult.setStatus 2result.setMessage "Not found"exit subend if
item.Deleteend sub
sub findEntry ()flt = "[" & search.getFirstCriteriaName() & "] =’" & search.getFirstCriteriaValue() & "’"set item = contacts.Items.Find ( flt )if item is nothing thenresult.setStatus 2result.setMessage "Not found" + "\n --->["& flt & "]"elsepopulateEntry entry, itemend ifend sub
sub putEntry ()
set item = contacts.Items.Addif item is nothing thenresult.setStatus 2result.setMessage "Unabled to create olContacts(2) item"exit subend ifpopulateItem entry, itemitem.Saveend sub
sub populateEntry (entry, item)
entry.setAttribute "FullName", item.FullNameentry.setAttribute "Email1Address", item.Email1Addressentry.setAttribute "Categories", item.Categoriesentry.setAttribute "Birthday", item.Birthdayentry.setAttribute "LastModificationTime", item.LastModificationTime
entry.setAttribute "BusinessAddress", item.BusinessAddressentry.setAttribute "BusinessTelephoneNumber",
item.BusinessTelephoneNumberentry.setAttribute "BusinessFaxNumber", item.BusinessFaxNumber
entry.setAttribute "HomeAddress", item.HomeAddressentry.setAttribute "HomeTelephoneNumber", item.HomeTelephoneNumberentry.setAttribute "HomeFaxNumber", item.HomeFaxNumber
entry.setAttribute "MobileTelephoneNumber",item.MobileTelephoneNumber
entry.setAttribute "JobTitle", item.JobTitleend sub
sub populateItem (entry, item)item.FullName = entry.getString("FullName")item.FileAs = entry.getString("FullName")item.Email1Address = entry.getString("Email1Address")
122 IBM Tivoli Directory Integrator 5.2:C'8O
’ item.Categories = entry.getString("Categories")’ item.Birthday = entry.getString("Birthday")
’ item.BusinessAddress = entry.getString("BusinessAddress")’ item.BusinessTelephoneNumber =
entry.getString("BusinessTelephoneNumber")’ item.BusinessFaxNumber = entry.getString("BusinessFaxNumber")
’ item.HomeAddress = entry.getString("HomeAddress")’ item.HomeTelephoneNumber = entry.getString("HomeTelephoneNumber")’ item.HomeFaxNumber = entry.getString("HomeFaxNumber")
’ item.MobileTelephoneNumber =entry.getString("MobileTelephoneNumber")
’ item.JobTitle = entry.getString("JobTitle")end sub
m{
6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>,Sw;#
JavaScript ,Sw
K>}T>KgN9CE>oT`4,Sw#K>}9CK JavaScript,"T>KICD
TsT0gN9C|G#
>}zk
//// Place intialiazation code before function declarations.//var counter = 0;
function selectEntries(){}
function getNextEntry (){if (counter > 100) {result.setStatus (1);result.setMessage ("End of input");return;}
entry.setAttribute ("counter", counter);counter++;}
function modEntry (){}
function deleteEntry (){}
function findEntry (){}
function putEntry (){}
Z 4 B >} 123
m{
6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>,Sw;#
JavaScript bvw
K>}T>KgN9CE>oT`4bvw#K>}9CK JavaScript,"T>KICD
TsT0gN9C|G#
>}zk
//// This is a simple Parser that returns one line at a time from// the input stream.//
var counter = 0;
function writeEntry (){var names = entry.getAttributeNames();for (i = 0; i < names.length; i++) {out.write (name[i], entry.getString(name[i]));out.write (13);out.write (10);}}
function readEntry (){var str = inp.readLine();
if (str == null) {result.setStatus (0);result.setMessage ("End of input");return;}
counter++;
entry.setAttribute ("line", str);result.setStatus (1);}
m{
6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>bvw;#
`4BD-<,Sw
(#P=V`4B,SwD=(#Z;V=(G9C+CDE>oT`45V;v/
}/DE>#Z~V=(G9C Java `4-<,Sw#
yZE>D,Sw
kDA6IBM Tivoli Directory Integrator 5.2:N<8O7PD:E>,Sw;DD5,
"4;BZ 121 3D:VBScript ,SwM Microsoft Outlook *5,Sw;#|G<|
,K`4T:D,SwyXhDE"#
124 IBM Tivoli Directory Integrator 5.2:C'8O
yZ Java D,Sw
(}>}'0I\G'0BBoDnCl(#ZK,Java `LoTD*65JOG\P
C D # 0 O l d H T T P M ' z , S w 1 D 4 z k | , Z
root_directory/examples/OldHTTPConnector ?<P#|ITCz7PKbgN5VyZ
Java D,Sw#C>})9K` com.ibm.di.connector.Connector,b+9zITCJ\
`zh*D=((k*A JavaDocs Ti4b)D5)#
2k"b,HTTP M'z,SwGW!D,Sw,K&RG9CKID HTTP M'z,
Sw,r*|Gv|CD>}#
9("20yZ Java D,Sw
kG!,IBM Tivoli Directory Integrator 'F0-<,Sw1|0Ki0w._,Sw,
rKz;h*`40-<,Sw1#
PX Java bD"M
g{z9Ck IBM Tivoli Directory Integrator `,Db(kND6IBM Tivoli Directory
Integrator 5.2:\m18O7PD:V<i~;),k7#z9Ck IBM Tivoli Directory
Integrator y9CDf>`,#g{;G,IZ0XwDl},zI\av=f]Jb#
q-TB=hT9("$n-<,Sw#9(8<Y(zQ-20K Java2 SDK,"R
b)~xFD~Q-Z PATH P#
1. *`kzDzk,zXkZ`76PS IBM Tivoli Directory Integrator V"fP|
, ibmdisrv.jar#1;,z2h*|,d|XhD jar D~,Ofa=DID HTTP
M'z,Swh* mailapi.jar#
javac -classpath ’IBMDirectoryIntegrator/jars/miserver.jar;IBMDirectoryIntegrator/jars/mailapi.jar’ com\myname\OldHTTPClient.java
bGZ IBM Tivoli Directory Integrator w?<P20 IBM Tivoli Directory Integrator
19CD Windows |n#UNIX 9C0:14zf0;1w*Vt{#
2. CTBZ]`k{* idi.inf DD~:
[connectors MyConnector]connectorConfig {
connectorType:com.myname.OldHTTPCLient}description:My OldHTTPCLient
[end]
[form com.myname.OldHTTPCLient]title:The title
parameterlist [myparam1myparam2]
parameter {myparam1 {label:URLsyntax:stringdefault:http://localhost}
myparam2 {label:Portsyntax:droplist
Z 4 B >} 125
values [808080]default:80}}[end]
KD~D Connectors ?Vaf_0dC`-w1bG;v,Sw,,1a)KK,
S w Z 0 d C ` - w 1 M y C o n n e c t o r P 9 C D { F , T 0 J a v a ` {
com.myname.OldHTTPCLient#
form ?Vf_0dC`-w1,Swyh*DN}#parameter list ?VPvKN}
T>D3r#parameter ?V|,?vN}DS?V,"PTBX|V:
label Zm%PT>DD>
defaultN}D1!5
descriptionN}DhvTD>#KD>aZC'Zj)O#t1T>
syntax
string ;PD>
textarea`PD>
droplistx5DB-Pm
dropeditx5DB-PmMCZC'(e5D`-r
boolean9C0true1r0false1w*5D4!r
passwordJmdk\k
static ;I|DDD>
script 1C'!qKN}1,Z0dC`-w1P*9CDXb/}#(;X"
D5G selectFile,|9C'\;/@D~53"!qD~76#
scriptlabelCZ%"I!E>D4%ODj)
3. + idi.inf M`D~mS= jar D~(myconnector.jar)
jar cvf myconnector.jar idi.inf com\myname\OldHTTPCLient.class
4. + jar D~4F=OJD?<,}g root_directory/jars/myjars#|Xk;Z
root_directory/jars DS?<P,;&19C53?< connectors/"eventhandlers/ r
parsers/#
5. VZ,zD,Sww* MyConnector IC#
126 IBM Tivoli Directory Integrator 5.2:C'8O
9C LDAP ,Sw4F?<
(#,4PKYwDnC=(GS;v~qw<v}Z9CD LDIF,;s+|<km;
v~qw#+G,g{z#{9C IBM Tivoli Directory Integrator 44PKYwTq
!|`XF,kLxDA#
zITC;v|,TB=v,SwDG#r%Di0w._4P4FYw:
1. 9C%6pwCrD Iterator ,Sw(A!4?<)
2. AddOnly ,Sw(|B?j?<)
*4F{vw,T;Xk}k]i#RGaX4Xt/,;vi0w._,+GQw
bIThC*Uek?j?<DNb DN:
TZ106pP5XDyPu?Z?j53PmSu?g{(I&)+Qwb6phC*10Du? DN,t/`,Di0w._
IT"PXt/i0w._,Sx9&mSl#1;,_L}I\}`,+GITT
|xPXF#r*0dC`-w1hCK -w N},zXkS|nPt/ IBM Tivoli
Directory Integrator
ibmdisrv -rDumpDir -cDumpDirectory.cfg
CTB=hjIzk(F:
v AddOnly ,Sw(on_success hook:|t/;vBDi0w._,Ki0w._x
P Prolog l!Du<u?)
v Zi0w._ Prolog P(Z,Swu</.0)#
Z 4 B >} 127
128 IBM Tivoli Directory Integrator 5.2:C'8O
Z 5 B IBM Tivoli Directory Integrator |nP!n
|nP!nXkZ!nstzd5#;*Z!nM5.d9CUq#
IBM Tivoli Directory Integrator0dC`-w1
ibmditk [filename]
D~{ zIT9C|,O(dCD~D 0 vr`vD~{#
IBM Tivoli Directory Integrator ~qw
TBGCZ IBM Tivoli Directory Integrator ~qwD|nP!n(ibmdisrv
[options]):
>}:ibmdisrv -c"C:\demos\rs.xml" -r"Access2LDAP"-l"c:\metamerge\mydemo.log"
":Z!nV8M5.d;PUq#k9C}E4#t5PI\vVDUqr:E#
-c dCD~#
-l U>D~(1!XF(dv)#4PDYw\Y,r*\YP{"*AXF
(#**s?VG<|DU>D~,k|D log4j.properties#
-D CZ{CB~&mLrt/Dj>#
-r *t/Di0w._{FDPm#*t/i0w._ a M b,k9C|n -r ab#2'Vd|o(:-ra,b;-ra -rb#
" : g { z 9 C i n c l u d e M { F U d , r i 0 w . _ I T *
myNamespace:/AssemblyLines/alName (Y({FUd myNamespace M
i0w._{F alName)#
-w g{8(K -r(r -t),rKj>a9 IBM Tivoli Directory Integrator H}
?vi0w._DB~&mLrjIsYt/B;v#g{48(Kj>,r
IBM Tivoli Directory Integrator a"PXt/yPI -r N}8(Di0w._#
1ns;vi0w._MT=t/DB~&mLrjI1,~qw#9#
":1~qwP;Pn/_L1,C~qw#9#;x,RG"VTZ
Perl,Perl Nq+w*n/_LF}#9C -w ?F IBM Tivoli Directory
Integrator Zns;vi0w._jIs#9#
-v T>f>E""Kv#bG<ZU>D~P#
-P \k(dCD~QS\DivB)
-p Zt/1*" Java XT#kG!:zTXka);vdCD~,Z Java XT
*".0+A!CD~#
-t *t/DB~&mLr{FDPm#*t/B~&mLr a M b,k9C|n
-t a b#2'Vd|o(:-ta,b;-ta -tb#
© Copyright IBM Corp. 2003 129
-m t/\mM`SwXF((AMC)~qw#,1t/ MOBJ SZ#kND
6IBM Tivoli Directory Integrator 5.2:\m18O7PD:\mM`SwXF
(;Tq!|`PX AMC DE"#
1 IBM Tivoli Directory Integrator U91,|a5XTB.;DvZzk:
0 C'9C -v N}(T>E""Kv)t/K IBM Tivoli Directory Integrator
1
v ^(r*U>D~(-l N})
v ^(r*dCD~
v I\mks#9
2 ZT/KPsKv#1z(}8( -w t/ IBM Tivoli Directory Integrator 1,
IBM Tivoli Directory Integrator aKPI -r N}4PDi0w._,;sKv#
9 mI$Q=Zr^'
130 IBM Tivoli Directory Integrator 5.2:C'8O
=< A. 9C CloudScape }]b
TBG;)CZ CloudScape }]bD|n:
v start -p KZE [-ld]
v shutdown [-h wz][-p KZE]
v dbstart }]b?< [-b }<\k][-ld][-ea encryptionAlgorithm] [-ep
encryptionProvider] [-u C' \k][-h wz][-p KZE]
v dbshutdown }]b?< [-h wz][-p KZE]
v testconnection [-d }]b?<] [-u C' \k] [-h wz] [-p KZE]
v sysinfo [-h wz][-p KZE]
v conpool n!5 ns5 [-d }]b?<][-h wz][-p KZE]
v logconnections {on|off}[-h wz][-p KZE]
v maxthreads ns5[-h wz][-p KZE]
v timeslice Ak[-h wz][-p KZE]
v trace {on|off} [-s a0j6][-h wz][-p KZE]
v tracedirectory zY?<[-h wz][-p KZE]
6k= CloudScapeCloudScape }]b}fZ IBM Tivoli Directory Integrator DZ?KP(6k=),x
;GZT:D JavaVM PKP(*x==)#1zT*x==KP CloudScape 1,IBM
Tivoli Directory Integrator D`v5}<ITCJ`,D}]b~qw,r*yPD}
]bks<a"M= CloudScape ~qw#Z6k==P;Jmd|}LCJZ IBM
Tivoli Directory Integrator Z?KPD CloudScape }]b}f#
Z*x==P,z9ITt/`v}]b"9%v CloudScape ~qwa)`v IBM
Tivoli Directory Integrator D5}#
Xh CloudScape 1!5
^D global.properties D~,"`-X(XT>}]b(*x==);CD?V#"M
tT>}]b(6k==);CDHP?VIXh CloudScape D4("9CMXU1
!5#
IBM Tivoli Directory Integrator Z?D\m}]b,SD0f"$'1lb=4T6k
==KP CloudScape,"R4XUNNS0dC`-w1r~qwr*D}]b#
© Copyright IBM Corp. 2003 131
132 IBM Tivoli Directory Integrator 5.2:C'8O
=< B. vSibzICDZf
4PTBYwvS IBM Tivoli Directory Integrator PDQs!:
Windows =(
`- IBM Tivoli Directory Integrator 20?<PD ibmditk.bat M ibmdisrv.bat
TZD~ns;PPD -cp %MYCLASSPATH% .smS -Xms254000000
-Xmx1024000000#
":Xms Gu<Qs!,Xmx GnsQs!#
Unix =(
`- IBM Tivoli Directory Integrator 20?<PD ibmditk M ibmdisrv TZ
D~ns;PPD -cp %MYCLASSPATH% .smS -Xms254000000
-Xmx1024000000#
":g{z9C IBM Java VM 1.4.1,r1!ivB,|+ -set Xmx(nsQ
s!)hC*\2ICDZfD;k(}GzICDZf!Z 128M)#
© Copyright IBM Corp. 2003 133
134 IBM Tivoli Directory Integrator 5.2:C'8O
=< C. IBM Tivoli Directory Integrator PD+VZV{/
IBM Tivoli Directory Integrator GC Java `4D,x Java 'V Unicode(+VZ)
V{/#+G,`F}/LrDb?i~I\;'V+VZV{/#
I WSH(Windows E>`Fwz)'VDE>oTZ9C Unicode V{/1I\a}
pJb#
© Copyright IBM Corp. 2003 135
136 IBM Tivoli Directory Integrator 5.2:C'8O
=< D. uoVd
LDAP uo
(P{F(Distinguished Name,DN)
Z LDAP uoP,?<PTsD+^({F#|(#CF*C'QC{F
(UFN)Dq=`4#K{FG;vC%v:E(,)VtD(RND)rP#
`X(P{F(Relative Distinguished Name,RDN)
Z LDAP uoP,TsD{F`TZdV\G(;D#RDN Dq=G attribute
name=attribute value#
cn=John Doe
IBM Tivoli Directory Integrator uo
[Sw(Accumulator)NqwCiPDXbTs,|CzSwCDi0w._[S}]"T;vi5
X#
_6B~&mLr
H0j<B~&mLr1Z0dC`-w1jI|`#
AL i0w._(AssemblyLine)Du4#
=SLr
=SLrG3v#iD log4j n(Z}= Java b),|+U>{"8}=3v
h8rb#Z IBM Tivoli Directory Integrator P;#C#
i0w._
~qwPDy>$wTs(kNDZ 139 3)#|I,Sw"bvwM5q_-
9I#,Swri0w._Mk}]"+}]Mvi0w._#
tT |,Zu?P(kND138)RP5(%5r`5)#m{:NqN};(kN
D140)#
tT3d
+tTS}]43d=i0w._#|+7X5,bGS-<,SwtT3d
=$wu?#tT3dZ0dk3d1!n(r0dv3d1!n(P4P
(S,SwD==x()#
i~(Components)
IBM Tivoli Directory Integrator Iw*~qw(kNDZ 139 3)M IBM Tivoli
Directory Integrator0dC`-w1DZK9I#Kb,RGV[ng,Sw"
B~&mLrMbvwDi~#Z3VLHO,IT@"ZZKXT|GxP
V"M}6#
Fc|D(Computed Changes)
,SwD Update ==(kNDZ 140 3)DXb&\#
dC`-w(ibmditk)
IBM Tivoli Directory Integrator ~qw(ibmdisrv r ibmdisrv.bat)IZdCD
© Copyright IBM Corp. 2003 137
~((eK IBM Tivoli Directory Integrator ~qw)OKP Java }fDE>
9I#dCD~G xml q=D#0dC`-w1(GUI)CZ`-KdCD~
Tc(e~qw#
,Sw *KA!}]49CD}]4e~#Zi0w._Z?,RGxV0-<,S
w1TsM0i0w._,Sw1Ts,s_r|K0_"_P;,D=(
/#kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:Ts;T
q!|`XZTsDE"#
, S w I T T ; , D = = $ w ( } g ,
Iterate"Delete"Update"AddOnly"Lookup T0 CallReply)#
Delta Z Iterator ==P,=wSzw19CDXbuo#kNDZ 39 3D:Delta M
Fc|D;#
u? ,1CZu?TsMIi0w._M,Sw(kND6IBM Tivoli Directory
Integrator 5.2:N<8O7PD:,Sw;)9CD%6nDuo#u?(#T
&Z}]bm/S<PD;P"D~PD;uG<r?<PD;vTs#u?
I|,5DtTiI#}g,|zwI\5XB;vK(u?),dtTPP
/X/x"U{Mg0#b}vtTD5I\G London"Holmes M 5632#
EpilogZi0w._}]waxsKPDzk,N(g{PD0)#|(##fi0
w._BNKP1*9CDN}#kND6IBM Tivoli Directory Integrator 5.2:
N<8O7PD:i0w._hC!n(;#m{ Prolog(kND139)#
B~&mLr
H}X(DB~,"4P;vYw#CZ7(N1t/i0w._#(#ri
0w._+];vu< work u?#
b?XT(External Properties)
;Vb?/X(i~N}(}gD~{"C'"\kH)D=(#g{CN}
4Cwi~N},rzI\#{9C0NqN}1(kND140)#
GUI(ibmditk r ibmditk.bat)IBM Tivoli Directory Integrator ~qw(ibmdisrv r ibmdisrv.bat)IZdCD
~((eK IBM Tivoli Directory Integrator ~qw)OKP Java }fDE>
9I#dCD~G xml q=D#GUI CZ`-KdCD~Tc(e~qw#
/Iw(Integrator)z7D{F#Fw IBM Tivoli Directory Integrator#|I0dC`-w1M~
qw(kNDZ 139 3)#
IteratorIterator ==PD,Sw#
Java VMJava ibz#IBM Tivoli Directory Integrator ZFw Java ibzD73ZK
P#|_PT:DZf\m,"Z\`=f<G;vzwPDzw#
4Su~(Link Criteria)
CZf* Update"Lookup M Delete ==D,Sw*CJ24#|+tT(k
NDZ 137)Si0w._4S=}]4PDVN(tT,P)#
==(Mode)
,Sw_P==:C==hvK,SwDC>:
138 IBM Tivoli Directory Integrator 5.2:C'8O
v Iterate
v AddOnly
v Lookup
v Update
v Delete
v CallReply
kND6IBM Tivoli Directory Integrator 5.2:N<8O7PD:,Sw;Tq
!|`PX==DE"#
Null P*
gNZ1YtT51jItT3d#
VCTsf"
kND140#
VCN}f"
;VICZC'#fdh*D5D0VCTsf"1`M#bICZwVn,
s#f Changelog D;CH#
y>B~&mLr(r%B~&mLr"%"wrKZl}w)
zIT`FNNBo#{CCB~&mLr,zIT_Pj+DXF,+Gz
XkV$`FYwDzk#
PrologZi0w._}]wt/0KPDzk(g{PD0)#zkITZyP,S
wu</.0r.sKP#m{ Epilog#
XT(Properties)
|,Zu?P(kNDZ 138 3)RP;v%5#s`CZ&mLrYw3d
P#m{Z 137 3D:tT;#
-<,Sw
i4b?}]4Di0w._?~#m{6IBM Tivoli Directory Integrator 5.2:
N<8O7PD:,Sw;#
3d IBM Tivoli Directory Integrator D&\,9z\;G<i0w._YwTcT
sXEx^hNNvVD}]4#kNDZ 8 3D:3d;#
E>i~
`FZ0dC`-w1PD,Sw#|IT4wG4$HdCdkrdv&\
D,Sw#|I0dC`-w1P%@D0E>15CLrek,"R;a;
,Swl}#
E>,Sw(Script Connector)0E>,Sw1GzT:`4&\D,Sw:|Z3VbeOGUWD,gk
Q V P D , S w ` H , 0 E > , S w 1 ; P 5 V y > = (
getNextEntry"findEntry H#;*kE>i~l}#
~qw(Server,ibmdisrv r ibmdisrv.bat)0dC`-w1ITCz(e~qw#;)(eK~qw,|+S|nP(k
NDZ 129 3DZ 5 B, :IBM Tivoli Directory Integrator |nP!n;)t
/"4P5JD$w#~qwI\1SKPi0w._,+G|2I\t/+
Zh*1t/i0w._DB~&mLr#
=< D. uoVd 139
r%B~&mLr(%"wrKZl}w)
}KT/t/.b,0r%B~&mLr1;PT/P*#{CKB~&mL
r,zIT_Pj+DXF,1zXkV$`FYw#
(CB~&mLr
*X(P*hFDB~&mLr,}g,DSML v2 B~&mLr#bV(CD
hFaZCB~&mLrZ0dC`-w1PDgfO43v4#
j<B~&mLr
b)B~&mLra)K;Vj<Dgf,|, Prolog"dC"G<MYw3
d!n(#
4,(State)
,SwI&ZTB4,.;:
v Enabled(}#4,)
v Passive(Qu</,+;Gi0w._wD;?V)
v Disabled(4Ii0w._u</)
53f"
IBM Tivoli Directory Integrator CTf"`V&\D4,E"DX5}]b#
}g,Delta &\T00lic/XBt/1&\<9CK&\(g{
CloudScape `MQ!q)#
Task 4U<(,yP_L(i0w._"B~&mLrH)<Fw task Ts#
NqwCi(Task Call Block)
CZ=/Si0w._+]N}D Java a9#
NqN}(Task Parameters)
SD~#f"0kDN}#*Zi0w._0hC1!n(PhCDD~{#
m{:b?XT;(kND138)#
Update;V==#Update aTk*|BDTs4PiR,g{R=K,r+^DVP
Du?#g{|;fZ,rmS|#m{:Fc|D;(kND137)#
C'XTf"
ICZC'#fNN{I\h*5D053f"1`M#kND140#
5(Value)
kNDZ 138 3D:u?;MZ 137 3D:tT;#
$wu?
Fw$wDu?(kNDZ 138 3)`D;v5}#g{;fZ$wu?,r
;wCG Iterator ,Sw#$wu?G;vJm,SwZi0w._P2m}]
DTs#g{4S|zwC=$wu?,zIT(}9C task.setWork() Z
Prolog P4(|:
init_work = system.newEntry(); // Create a new Entry objectinit_work.setAttribute("uid", "cchateauvieux"); // populate ittask.setWork(init_work); // make it known as
work to the Connectors
140 IBM Tivoli Directory Integrator 5.2:C'8O
=< E. yw
>E"G*Z@za)Dz7M~q`4D# IBM I\Zd{zRrXx;a)>D
5PV[Dz7"~qr&\XT#PXz10yZxrDz7M~qDE",kr
z1XD IBM zmI/#NNT IBM z7"Lrr~qD}C"GbZw>r5>
;\9C IBM Dz7"Lrr~q#;*;V8 IBM D*6z(,NN,H&\D
z7"Lrr~q,<ITzf IBM z7"Lrr~q#+G,@@Mi$NNG
IBM z7"Lrr~q,rIC'TP:p#
IBM +>I\Q5Pr}Zjkk>D5Z]PXDwn({#a)>D5"4ZhC
'9Cb)({DNNmI#zITCif==+mIi/Dy:
IBM Director of LicensingIBM CorporationNorth Castle DriveArmonk, NY 10504-1785U.S.A.
PX+VZ(DBCS)E"DmI$i/,kkzyZzRrXxD IBM *6z(?E
*5,rCif==+i/Dy:
IBM World Trade Asia Corporation Licensing2-31 Roppongi 3-chome, Minato-kuTokyo 106, Japan
>un;JC"zrNNbyDunk1X(I;;BDzRrXx:International
Business Machines Corporation04V41a)>vfo,;=PNNV`D(^[Gw
>D9G5,D)#$,|(+;^Z5,DPXGV(T"JzMJCZ3VX(
C>D#$#3)zRrXxZ3);WP;Jmb}w>r5,D#$#rK>u
nI\;JCZz#
>E"PI\|,<u=f;;<7DX=r!"ms#K&DE"+(Z|D;b
)|D+`k>JODBf>P#IBM ITf1T>JOPhvDz7M/rLrxP
DxM/r|D,x;mP(*#
>E"PTG IBM Web >cDNN}C<;G*K=cp{Ea)D,;TNN==
d1TG) Web >cD#$#G) Web >cPDJO;G IBM z7JOD;?V,
9CG) Web >cx4DgU+IzTPP##
IBM IT4{O*J1DNN==9CrV"zya)DNNE"x^kTzP#NN
pN#
>LrD;mI=g{*KbPXLrDE"To=gB?D:(i)JmZ@"4(
DLrMd{Lr(|(>Lr).dxPE";;,T0(ii)JmTQ-;;DE
"xP`%9C,kkBPX7*5:
IBM CorporationDepartment MU5A4611301 Burnet Road
© Copyright IBM Corp. 2003 141
Austin, TX 78758U.S.A.
;*qXJ1Du~Mun,|(3)iNBD;(}?D6Q,<IqCb=fD
E"#
>JOPhvDmILr0dyPICDmIJOyI IBM @] IBM M'-i"IBM
zJm~mI-irNN,H-iPDuna)#
K&|,DNNT\}]<GZ\X73PbCD#rK,Zd{Yw73PqCD
}]I\aPwTD;,#P)b?I\GZ*"6D53OxPD,rK;#$k
;cIC53OxPDb?a{`,#Kb,P)b?G(}Fcx@FD,5Ja
{I\aPnl#>D5DC'&1i$dX(73DJC}]#
f0G IBM z7DE"ISb)z7D)&L"dvf5wrd{I+*qCDJO
Pq!#IBM ;PTb)z7xPbT,2^(7OdT\D+7T"f]TrNNd
{XZG IBM z7Dyw#PXG IBM z7T\DJb&1rb)z7D)&La
v#
b)E"|,U#5qYwP9CD}]M(f>}#*!I\j{X]>|G,b
)>}|,KvKU{"+>"7FMz7{#yPb){F<Gi9D,gk5J
s5yCD{FMX7`F?tIO#
f(mI:
>E"|(4oTN=Dy>&CLr,b)y>5w;,Yw=(OD`L=(#
g{G*4UZ`4y>LrDYw=(OD&CLr`LSZ(API)xP&CLr
D*""9C"-zrV"*?D,zITNNN=Tb)y>LrxP4F"^
D"V",x^kr IBM 6Q#b)>}"4ZyPu~Bw+fbT#rK,IBM
;\##r5>b)LrDI?T"I,$Tr&\#C'g{G*K4U IBM &C
Lr`LSZ*""9C"-zrV"&CLr,rITNNN=4F"^DMV"
b)y>Lr,x^kr IBM 6Q#
2b)y>LrD?]=4rdNN?VrNN\zz7,<Xk|(gBf(y
w:
© (s+>D{F)(j)#K?VzkGy] IBM +>Dy>Lr\zv4D# ©
Copyright IBM Corp.(dkj])#All rights reserved.
g{z}Tm=4q=i4>E",<,MJ+<}I\^(T>#
Z}=i~yw
Apache yw
Kz7|,I Apache Software Foundation(http://www.apache.org/)*"Dm~#b)
Apache i~|( Xerces"Xalan"XML4J M Log4J b,"R|GGT?jzkq=a
)D#K?jzkGS Apache Web >cq!R4S^D#
142 IBM Tivoli Directory Integrator 5.2:C'8O
Apache mI$
Apache m~mI$,f> 1.1
Copyright (c) 1999-2002 The Apache Software Foundation.All rights reserved.
g{zcBPu~,r^[P^^D,<JmT4zkM~xFN=YV"M9C:
1. 4zkDYV"Xk#tTOf(yw"Ku~PmT0Bvbpun#
2. T~xFN=YV",XkZV"1a)DD5M/rd|DOP4FTOf(y
w"Ku~PmT0Bvbpun#
3. YV"1f=DnUC'D5(gP)Xk|(BPyw:0>z7|, Apache
Software Foundation *"Dm~ (http://www.apache.org/)#1mb,g{PK`Z}
=yw,Kyw2IvVZm~>m.P,x;[d(#vVZN&#
4. 4-BHifmI,{F0Xerces1"0Xalan1"0 log4j1"0mx4j1M
0Apache Software Foundation1;CCZ#$rYzI>m~IzDz7#*q!
ifmI,kk [email protected] *5#
5. 4- Apache Software Foundation BHifmI,I>m~IzDz7;CF*
0Apache1,2;CZ|GD{FPvV0Apache1Vy#
>m~T04V41Dy!a),ywb}NNw>r,>D#$,|((+;^
Z)JzTMJCZ3X(C>D,>#$#^[NVivMmI,^[NVPXb
%pNDm[,2^[GqPO,X5,GqPOqpNun,rGIZ9C>m~
<BDNNN=DV( (|(hvMd|-r),Apache Software Foundation rdhz
K<;TNN1SD"dSD"=xD"XpD"M#TDrs{TDp'b% (|(
+;^ZfzL7r~qDI:;9C"}]r{sD%';r_5qPO) :NN(
IpN;49BH((KbVp'b%DI\T,2GgK#
>m~I`{K1* Apache Software Foundation T8`4xI#XZ Apache Software
Foundation D|`E",kND http://www.apache.org
Rhino yw
IBM Tivoli Directory Integrator 9C Rhino(Java D JavaScript)Tszk#Rhino D
4zk;Z http://www.mozilla.org/rhino/download.html,"RIT4U Netscape Public
License 1.1(http://www.mozilla.org/MPL/NPL-1.1.html)PDunq!|#Z mozilla Web
>cR=D Rhino 4zkZzICZ IBM Tivoli Directory Integrator PDTszk1
;PxPNN^D#
Lj
TBuoG International Business Machines Corporation Z@zM/rd{zRrXx
DLj:
IBM Tivoli DB2
Domino Lotus Notes
Java"JavaScript MyPyZ Java DLjMUjG Sun Microsystems, Inc. Z@zMd
{zRrXxDLjr"aLj#
Microsoft"Windows M Windows NT G Microsoft Corporation D"aLj#
=< E. yw 143
UNIX G The Open Group Z@zMd{zRrXxD"aLj#
Kz7|,I Apache Software Foundation(http://www.apache.org/)*"Dm~#
d{+>"z7M~q{FI\Gd{+>DLjr~qjG#
144 IBM Tivoli Directory Integrator 5.2:C'8O
���
Pz!"
S152-0830-00