154
IBM Tivoli Directory Integrator 5.2:C'8O S152-0830-00

IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

Embed Size (px)

Citation preview

Page 1: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

IBM Tivoli Directory Integrator5.2:C'8O

S152-0830-00

���

Page 2: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#
Page 3: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

IBM Tivoli Directory Integrator5.2:C'8O

S152-0830-00

���

Page 4: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

"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.

Page 5: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 6: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 7: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

?<

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

Page 8: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 9: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 10: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 11: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 12: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 13: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 14: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 15: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 16: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 17: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 18: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 19: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

,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

Page 20: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":}]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

Page 21: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 22: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 23: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 24: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 25: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 26: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 27: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 28: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 29: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 30: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 31: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

*"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\&#53TsPa)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

Page 32: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 33: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 34: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":|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

Page 35: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 36: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 37: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

/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

Page 38: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 39: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 40: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 41: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 42: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 43: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 44: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 45: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 46: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 47: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 48: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=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

Page 49: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 50: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

}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

Page 51: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

@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

Page 52: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

@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

Page 53: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 54: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 55: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 56: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 57: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 58: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 59: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 60: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

==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

Page 61: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 62: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 63: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 64: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 65: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 66: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 67: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 68: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

}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

Page 69: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

*",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

Page 70: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 71: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 72: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 73: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 74: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 75: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 76: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 77: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 78: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 79: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 80: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 81: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

|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

Page 82: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

;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

Page 83: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

+?#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

Page 84: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 85: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 86: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 87: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 88: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 89: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 90: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 91: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 92: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 93: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

*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

Page 94: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 95: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 96: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 97: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 98: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 99: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

,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

Page 100: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 101: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 102: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 103: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 104: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 105: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 106: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

":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

Page 107: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 108: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 109: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 110: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 111: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 112: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 113: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 114: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 115: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 116: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 117: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

*"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

Page 118: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 119: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

;\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

Page 120: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 121: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 122: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

%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

Page 123: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

\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

Page 124: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 125: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

#= 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

Page 126: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

<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

Page 127: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 128: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

120 IBM Tivoli Directory Integrator 5.2:C'8O

Page 129: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 130: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 131: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

’ 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

Page 132: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 133: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 134: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 135: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 136: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

128 IBM Tivoli Directory Integrator 5.2:C'8O

Page 137: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 138: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

-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

Page 139: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=< 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

Page 140: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

132 IBM Tivoli Directory Integrator 5.2:C'8O

Page 141: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=< 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

Page 142: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

134 IBM Tivoli Directory Integrator 5.2:C'8O

Page 143: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=< 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

Page 144: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

136 IBM Tivoli Directory Integrator 5.2:C'8O

Page 145: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=< 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

Page 146: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

~((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

Page 147: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 148: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 149: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

=< 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

Page 150: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 151: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 152: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

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

Page 153: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#
Page 154: IBM Tivoli Directory Integrator 5.2publib.boulder.ibm.com/.../zh_CN/PDF/UsersGuide.pdfv kNDZ 71 3DZ 3 B, :IBM Tivoli Directory Integrator0dC`-w1;Tq! |`XZ IBM Tivoli Directory Integrator0dC`-w1DE"#

���

Pz!"

S152-0830-00