我在使用 Azure 数据库和 glassfish 时遇到问题。 Azure 数据库将在 2 分钟后关闭与 glassfish 池的连接。我发现the solution here但我很难实现它。
我应该把这段代码放在哪里?
<Startup>
<Task commandLine="Startup.cmd" executionContext="elevated" taskType="simple">
</Task>
</Startup>
我应该把包含此代码的文件放在哪里?
if exist startup.txt goto skip
time /t >> startup.txt
REM Workaround for JDBC to SQL Azure
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveTime /t REG_DWORD /d 30000 >> startup.txt
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v KeepAliveInterval /t REG_DWORD /d 1000 >> startup.txt
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v TcpMaxDataRetransmission /t REG_DWORD /d 10 >> startup.txt
shutdown /r /t 1
:skip
最佳答案
如果您在Azure上部署Azure云服务,您可以使用启动任务来执行cmd文件并配置.csdfg文件中的设置。您可以按照以下步骤操作:
- 如果您使用Eclipse IDE开发Java程序,可以从Eclipse Marketplace安装插件“Azure Toolkit for Eclipse”。
关于 Azure Toolkit for Eclipse,请参阅链接 https://msdn.microsoft.com/en-us/library/hh694271.aspx .
在 Eclipse IDE 上安装插件后,您可以创建一个 Azure 部署项目,如下面的屏幕截图所示。
创建一个名为“Startup.cmd”的文件并将此 PowerShell 代码填充到其中。
将启动任务代码配置到您的 CloudService 项目中的“ServiceDefinition.csdef”中。
您将在新项目中找到“ServiceDefinition.csdef”。
关于启动任务详情,请引用https://msdn.microsoft.com/en-us/library/hh180155.aspx .
启动任务是Azure上云服务的一个概念。云服务有两个角色概念:Web Role、Worker Role。启动任务在角色启动运行之前做一些必要的事情,例如配置运行环境、修改注册表项。
关于Azure云服务,请引用https://msdn.microsoft.com/en-us/library/hh124108.aspx .
对于 Java 开发人员,请参阅 https://msdn.microsoft.com/en-us/library/hh690943.aspx
如果您使用Azure VM,我建议您可以手动修改注册表项。我建议你可以引用这篇文章:
关于java - 微软 Azure 和 Glassfish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32039861/