我需要从 docker 容器连接到 SAP HANA 数据库。 这是asp net core web api项目
我将这些行添加到我的 dockerfile 中:
# Create hdbclient directory and copy hdbclient folder to the container
RUN mkdir -p /usr/sap/hdbclient
COPY ../hdbclient /usr/sap/hdbclient
# Set HDBDOTNETCORE environment variable
ENV HDBDOTNETCORE /usr/sap/hdbclient/dotnetcore
如果没有这些行,在调试时运行时它将无法工作,但是有了这些行,一切都可以。 问题是,发布 docker image hana 连接不起作用后,没有异常或任何执行都停止于此:
HanaConnection conn = new(connectionString);
并且挂起,没有错误,没有消息,什么也没有。
它可能是什么?我怎样才能尝试进一步调查它?
我在 Linux 容器中运行适用于 dotnet core 6 的 SapHana 客户端连接器时遇到同样的问题。
我已经从SAP官方链接下载了Sap.Data.Hana.Core.v2.1.dll和libadonetHDB.so:https://tools.hana.ondemand.com/#hanatools
我在集群中注意到,应用程序第一次启动大约 5/10 分钟后,当您调用时,该作业将被用来执行一些操作:
using (HanaConnection hanaConnection = new HanaConnection(connectionString))
{ ... }
我附上一张图片来证明 CPU/内存在那段时间很忙。 第一次初始化后,连接器将在几秒钟内回复,不会出现此问题。
如果我在 macOS 上使用 libadonetHDB.dylib,则此问题无法复制。
似乎是 Linux 库的问题...
希望这会有所帮助。
戴夫。