【发布时间】:2015-11-10 18:59:50
【问题描述】:
我正在开发一个简单的 java 后台进程,它处理来自套接字连接的数据,然后使用 mysql 连接器 JDBC 驱动程序建立与存储此信息的数据库的连接。我想使用 upstart 将程序用作服务,但是在初始化我的服务后,该过程将在第一次上传尝试访问 JDBC 驱动程序以将数据插入数据库后失败(在 jdbc 注册时不会失败,但是这个尽管我的日志中从未显示堆栈跟踪,但这是我监控输出的最佳假设)。如果我从程序中的 catch 语句中删除退出调用,我可以看到该进程不断接收上传,但实际上并没有数据存储在 mysql 数据库中。
当从控制台正常运行 java 程序时,它会毫无问题地执行。下面 upstart .conf 的部分指向我可以毫无问题地运行的同一个程序。
script
echo $$ > /var/run/uploadclient.pid
exec java -cp /user/server UploadProgram >> /home/user/upload.log
end script
以前有人听说过这样的问题吗?
【问题讨论】:
-
能否请您发布更多调试信息?它是如何失败的?它会在数据库日志中留下一些错误吗?用户是否拥有所需位置的权限?你的程序会抛出一些状态错误代码吗?