Amazon云Web服务上Grails应用程序会话数据出错

Amazon云Web服务上Grails应用程序会话数据出错,grails,amazon-ec2,amazon-web-services,grails-2.0,Grails,Amazon Ec2,Amazon Web Services,Grails 2.0,我有一个Grails2.0.0 web应用程序,它可以在开发环境和PROD环境中运行,没有任何问题。这两种环境都位于运行Tomcat 7的CentOS 6.0服务器上 由于客户的要求,我的任务是使用Amazon的Web服务将应用程序部署到云端。我已经能够做到这一点,但是我看到读取/写入会话数据的任何表单字段(即下拉框)都有奇怪的行为。例如,当我从下拉框中选择一个值时,所选的值应该保存到会话中,并在ajax调用后调用,以过滤相应的国家数据列表。如果我选择“百慕大”,下拉值实际上(错误地)更改为列表

我有一个Grails2.0.0 web应用程序,它可以在开发环境和PROD环境中运行,没有任何问题。这两种环境都位于运行Tomcat 7的CentOS 6.0服务器上

由于客户的要求,我的任务是使用Amazon的Web服务将应用程序部署到云端。我已经能够做到这一点,但是我看到读取/写入会话数据的任何表单字段(即下拉框)都有奇怪的行为。例如,当我从下拉框中选择一个值时,所选的值应该保存到会话中,并在ajax调用后调用,以过滤相应的国家数据列表。如果我选择“百慕大”,下拉值实际上(错误地)更改为列表中我没有选择的另一个国家(在ajax调用之后)

虽然我已经确认session变量包含错误的国家/地区,但我也确认了所有特定于应用程序的代码都正常工作(这是应该的,因为它在DEV和PROD环境中是这样做的)。我相信问题可能是由于环境配置不同造成的。我的DEV/PROD环境使用CentOS 6.0,但我的Amazon云环境使用Red Hat Linux。因为亚马逊没有提供CentOS的图片,所以红帽是我能找到的最贴切的口味

我想知道配置的差异是否会影响功能。或者,也许这是亚马逊特有的东西。例如,所有传入/传出流量都通过亚马逊的内部威胁管理网关(TMG)。也许这会影响会话数据

有没有人有过类似的经历?或者有人能给我指出正确的方向吗?这个问题已经影响我好几个星期了


谢谢

RedHad、CentOS和Amazon Linux的软件包基本相同,除了一些可能不会影响运行的附加软件包

我认为Amazon内部TMG也不是问题所在,因为它会阻止网络数据包,但不会改变数据包内容

然后,它只适用于tomcat、grails和您的应用程序:

  • 您是否尝试过将grails版本升级到2.0.4或2.1.0
  • 您是否在日志中确认您的ajax请求实际上正在被处理
  • 您的Xms、Xmx和PermGen tomcat配置是什么
  • EC2虚拟机的大小是多少?如果是m1.micro,您应该改为m1.small 另外,我建议您尝试其他名为Amazon的产品,它使用EC2、自动缩放组、弹性负载平衡和云观察,提供一个非常简化和集成的控制台来管理您的环境,使您能够非常快速地测试不同的配置


    如果您今天安装了MySQL,您可能希望用MySQL RDS实例替换它,并将EC2实例留给Web应用程序使用。

    问题在于Microsoft TMG被设置为执行缓存,这导致了问题。

    对于延迟响应,我已经考虑了您的所有建议。从TMG内的Windows机器上测试时,似乎没有出现问题。不幸的是,我们还不能访问这台机器,但另一个团队正在研究它。我一定会更新线程,一旦我听到更多。谢谢你的帮助!