西班牙
斯潘4
你好,FMEs!!
我目前正在为FME2017.1开发一个修改过的docker compose设置,其中包括Oracle客户端库,以便FME可以访问Oracle实例。我应用了我发现的各种指南,基本上得出了以下结论Dockerfile对于FME发动机:
来自saf亚搏在线esoftware/fmeserver engine:2017.1.1#安装Oracle Instant Client ADD OracleClient/Oracle instantclient*.rpm/tmp/ENV Oracle HOME=/usr/lib/Oracle/11.2/client64运行apt get install-y libaio1运行alien-i-c-v/tmp/Oracle instantclient*.rpm&&rm-f/tmp/Oracle instantclient*.rpm&&&echo$Oracle HOME/lib>/etc/ld.so.conf.d/oracle-instantclient11.2.conf&&&ldconfig ENV PATH=$PATH:$oracle_HOME/bin ENV ld_LIBRARY_PATH=$oracle_HOME/lib ENV TNS_ADMIN=$oracle_HOME/networkdir/ADMIN WORKDIR$ld_LIBRARY_PATH RUN ln-s libclntsh.so.11.1 libclntsh.so运行mkdir$TNS_ADMIN-p COPY OracleClient/*.ora$TNS_ADMIN/
引擎的修改版本将在docker-compose.yml中使用,而不是引擎的原始图像。一旦构建并启动了整个组合,我就可以登录到FME服务器,还可以向它发布一个工作区。如果该工作区包含Oracle数据库连接,我将收到一条警告消息,指出不支持这种连接。工作区发布并计划执行后,我可以在日志中看到以下消息:
警告:在“/usr/lib/ Oracle /11.2/client64/lib”中找不到Oracle客户端库。
我现在的问题是;该错误是否与我正在本地计算机上准备此操作,并且没有向服务器应用正确的许可证有关,或者是FME找不到Oracle客户端库的其他原因有关?
如果我通过docker-撰写exec fmeserverengine /bin/bash我可以开始了sqlplus并连接到目标服务器。所以很明显,一般的客户端设置似乎在工作。lib/目录似乎包含正确的文件:
glogin.sql libclntsh.so->libclntsh.so.11.1 libclntsh.so.11.1 libnnz11.so libocci.so.11.1 libociei.so libocijdbc11.so libsqlplusic.so libsqlplus.so libsqora.so.11.1 ojdbc5.jar ojdbc6.jar xstreams.jar
而且环境变量设置正确:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/ADMIN oracle_HOME=/usr/lib/oracle/11.2/client64 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/lib/oracle/11.2/client64/bin
所以至少从我的理解来看一切都是正确的。但是,由于某些原因,它不起作用或不被FME接受。
你知道为什么这样不行吗?
?2019安全亚搏在线软件公司|合法的