现在的位置: 首页 > 综合 > 正文

ArcSDE For DB2的开发模式

2013年03月11日 ⁄ 综合 ⁄ 共 5649字 ⁄ 字号 评论关闭

以前就知道ArcSDE for Oracle是使用OCI(Oracle Call Interface)开发出来的(已经与esri美国工程师确认过)。

但是一直不知道ArcSDE for DB2是拿DB2哪个模式开发的,从ArcSDE的动态库和执行文件中可以看出一些端倪。

如查看ArcSDE的服务进程文件所调用的DB2的动态库:

192.168.100.228 [sde bin]$ ldd giomgr
        libsdedb2srvr100.so => /home/sde/db2/sdeexe100/lib/libsdedb2srvr100.so (0x00002b3788e72000)
        libsde.so => /home/sde/db2/sdeexe100/lib/libsde.so (0x00002b37899cc000)
        libsg.so => /home/sde/db2/sdeexe100/lib/libsg.so (0x00002b3789f92000)
        libpe.so => /home/sde/db2/sdeexe100/lib/libpe.so (0x00002b378a0f2000)
        libdb2.so.1 => /usr/lib64/libdb2.so.1 (0x00002b378a625000)
        libxerces-c.so.27 => /home/sde/db2/sdeexe100/lib/libxerces-c.so.27 (0x00002b378c15e000)
        libicuuc.so.40 => /home/sde/db2/sdeexe100/lib/libicuuc.so.40 (0x00002b378c648000)
        libicudata.so.40 => /home/sde/db2/sdeexe100/lib/libicudata.so.40 (0x00002b378c892000)
        libXm.so.3 => /usr/lib64/libXm.so.3 (0x00000035b2c00000)
        libXmu.so.6 => /usr/lib64/libXmu.so.6 (0x00000035b2000000)
        libXp.so.6 => /usr/lib64/libXp.so.6 (0x00000035b2800000)
        libXt.so.6 => /usr/lib64/libXt.so.6 (0x00000035c3e00000)
        libSM.so.6 => /usr/lib64/libSM.so.6 (0x00000035b8c00000)
        libICE.so.6 => /usr/lib64/libICE.so.6 (0x00000035b7c00000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00000035b4800000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00000035b3c00000)
        libg2c.so.0 => /usr/lib64/libg2c.so.0 (0x00002b378d6da000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b378d915000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000035b1c00000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000035c3a00000)
        libm.so.6 => /lib64/libm.so.6 (0x00000035b1800000)
        libc.so.6 => /lib64/libc.so.6 (0x00000035b1400000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000035bfa00000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002b378db33000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00000035be600000)
        libdb2dascmn.so.1 => /home/db2inst1/sqllib/lib64/libdb2dascmn.so.1 (0x00002b378dd6b000)
        libdb2g11n.so.1 => /home/db2inst1/sqllib/lib64/libdb2g11n.so.1 (0x00002b378df92000)
        libdb2genreg.so.1 => /home/db2inst1/sqllib/lib64/libdb2genreg.so.1 (0x00002b378e817000)
        libdb2install.so.1 => /home/db2inst1/sqllib/lib64/libdb2install.so.1 (0x00002b378ea54000)
        libdb2locale.so.1 => /home/db2inst1/sqllib/lib64/libdb2locale.so.1 (0x00002b378ec5f000)
        libdb2osse.so.1 => /home/db2inst1/sqllib/lib64/libdb2osse.so.1 (0x00002b378ee84000)
        libdb2osse_db2.so.1 => /home/db2inst1/sqllib/lib64/libdb2osse_db2.so.1 (0x00002b378f4e6000)
        libdb2trcapi.so.1 => /home/db2inst1/sqllib/lib64/libdb2trcapi.so.1 (0x00002b378f75f000)
        libXft.so.2 => /usr/lib64/libXft.so.2 (0x00000035c6200000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00000035b6c00000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00000035b5c00000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00000035b5000000)
        libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00000035b9000000)
        libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00000035b6000000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000035b3800000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00000035b3400000)
        /lib64/ld-linux-x86-64.so.2 (0x00000035b1000000)
        libaudit.so.0 => /lib64/libaudit.so.0 (0x00002b378f976000)
        librt.so.1 => /lib64/librt.so.1 (0x00002b378fb8e000)
        libexpat.so.0 => /lib64/libexpat.so.0 (0x00000035b5800000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x00000035b2400000)

从上面的数据得出,SDE的动态库后台使用了8个DB2的动态库,感觉是拿DB2的cli开发的,然后查看了自己使用cli开发的应用程序,看看使用了哪些DB2的动态库。

[db2inst1@lstest cli]$ ldd dbuse
        libdb2.so.1 => /home/db2inst1/sqllib/lib64/libdb2.so.1 (0x00002b8f716d7000)
        libc.so.6 => /lib64/libc.so.6 (0x00000035b1400000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000035c3e00000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000035b1c00000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00000035b2000000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00000035be600000)
        libm.so.6 => /lib64/libm.so.6 (0x00000035b1800000)
        libdb2dascmn.so.1 => /home/db2inst1/sqllib/lib64/libdb2dascmn.so.1 (0x00002b8f7322c000)
        libdb2g11n.so.1 => /home/db2inst1/sqllib/lib64/libdb2g11n.so.1 (0x00002b8f73454000)
        libdb2genreg.so.1 => /home/db2inst1/sqllib/lib64/libdb2genreg.so.1 (0x00002b8f73cd8000)
        libdb2install.so.1 => /home/db2inst1/sqllib/lib64/libdb2install.so.1 (0x00002b8f73f15000)
        libdb2locale.so.1 => /home/db2inst1/sqllib/lib64/libdb2locale.so.1 (0x00002b8f74121000)
        libdb2osse.so.1 => /home/db2inst1/sqllib/lib64/libdb2osse.so.1 (0x00002b8f74345000)
        libdb2osse_db2.so.1 => /home/db2inst1/sqllib/lib64/libdb2osse_db2.so.1 (0x00002b8f749a7000)
        libdb2trcapi.so.1 => /home/db2inst1/sqllib/lib64/libdb2trcapi.so.1 (0x00002b8f74c21000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000035c3a00000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000035bfa00000)
        /lib64/ld-linux-x86-64.so.2 (0x00000035b1000000)
        libaudit.so.0 => /lib64/libaudit.so.0 (0x00000035b9000000)
        librt.so.1 => /lib64/librt.so.1 (0x00000035b2800000)

跟ArcSDE所使用的DB2的动态库是一样的。所以应该是拿DB2的cli开发的。

抱歉!评论已关闭.