Table of Contents

上一个主题

相关工具

下一个主题

<no title>

本页

常见问题

开发问题

SAE Java环境是否支持反射?

支持反射(支持全部Java语言特性)。

SAE Java环境是否支持新开Thread?

支持,但是有最大线程数限制(根据各类套餐限制不同)。

SAE Java中的应用是分布式部署的?JVM宕机了怎么办?

在创建应用时可选择JVM数量,如果数量大于1则是分布式部署。当发生故障时,首先会自动重启JVM故障节点,如果应用是多节点分布式部署,则路由此时不会将请求发到故障节点上,待节点恢复后再将请求分发过去。

SAE Java环境是否能使用微博接口?

可以使用,目前已有不少微博应用跑在SAE Java环境中。

应用访问忽然变得特别慢怎么办?

一般出现这种情况都是因为内存将近跑满了,首先重启应用释放内存,另外检查代码是否有未释放内存的操作。

应用被禁用了怎么办?

首先去服务状态面板查看被禁用的原因,如果应用访问量较小出现这种情况,请检查应用中是否存在死循环等bad code。如果访问量过大导致应用被禁用建议更换套餐或添加JVM节点,当然也可以申请企业服务(更高的配额)。

应用start和reload操作时候会被记录配额吗?

不会,应用在正常运行时才会被记录配额。

应用运行过程中重新上传war服务器是这样的流程?

应用运行中上传war包会触发reload操作,reload完后新上传的war即能生效。如果期间出现了错误,建议在应用面板重启应用。

调试应用过程中出现OOM怎么办?

如果应用出现OOM请到应用管理中重启应用即可,如果频繁出现,则建议扩大应用的内存(更换套餐)或者增加应用节点,当然也可以购买SAE提供的企业服务。

应用出现503怎么办?

应用出现503一般是应用启动过程中出现异常,如果是突发状况可重启服务。仍然无效请到日志中心查看JVM下的日志查找错误原因(有可能是JVM启动时出错)。

为何应用设置的ico不起作用?

在href前加上应用的contextPath,形如:

出现ban call socket是怎么回事?

SAE Java环境禁止连接内网,检查你的应用代码是否通过socket连接了不必要的内网地址。

框架问题

SAE Java环境支持哪些框架?需要做特殊的定制吗?

SAE Java环境几乎开放了所有的权限,所以大部分框架(包括SSH、Play等)都能够不做任何修改就在SAE Java环境中运行。

JVM问题

请参见 Java运行环境文档

服务问题

MySQL 的URL、用户名和密码是什么?

SAE提供的 MySQL 服务为主从分布,其中主库的URL为w.rdc.sae.sina.com.cn,从库的URL为r.rdc.sae.sina.com.cn,端口都是3307。用户名为应用的accessKey,密码为应用的secretKey(在应用管理的汇总信息中查看)。

使用 MySQL 服务一定需要主从分离读写吗?

根据应用需要,如果应用访问数据库量较小,可直接读写主库。不过还是建议你做主从分离的读写。

为什么 MySQL 连接有时候会丢失?

因为SAE的 MySQL 服务会将在一定时间内没有任何操作的连接回收,所以请根据实际情况配置你的连接池(如c3p0的idleConnectionTestPeriod和maxIdleTime建议设置为10)。

SAE Java环境支持连接外网 MySQL 吗?

支持,但建议使用SAE提供的 MySQL 服务,因为公网网络连接会耗费一定的时间,会影响应用的体验。

MySQL 服务使用的是什么存储引擎?是否支持InnoDB?

MySQL服务默认使用的是MyISAM引擎。企业用户是支持InnoDB的,如果需要使用InnoDB可发送邮件到 saemail@sina.cn 申请InnoDB引擎。

使用Memcache时报ServiceNotOpenException是怎么回事?

Memcache需要现在应用管理中开启才能使用。

使用 Memcache 时报NotInitializeException是怎么回事?

在调用 Memcache 操作时,请确保初始化SaeMemcache时调用了init()方法。另外最好基于请求request来调用 Memcache 接口。

使用KVDB时候报ServiceNotOpenException和ServiceIsBanException是怎么回事?

报ServiceNotOpenException请确保你的应用启用了KVDB ,而报ServiceIsBanException则是你的操作过于频繁导致服务被禁用,可以去服务状态面板查看具体哪项配额超配导致禁用。

使用 KVDB 报NotInitializeException是怎么回事?

在调用 KVDB 操作时,请确保初始化SaeKV时调用了init()方法。另外最好基于请求request来调用KVDB接口。

使用 FetchURL 服务时候报Author Error是怎么回事?

确保你请求的URL没有中文,如果有中文请先将URL的中文转码。

SAE Java提供的SVN可上传哪些文件?

SAE Java应用提供的SVN仓库支持应用war包和 config.yaml ( cron 配置文件)两种类型文件上传。

可以使用JavaMail来发送邮件吗?

可以,但是在上传war包前需要将应用中的mail.jar删除,非特殊情况建议用户使用SAE提供的 Mail 服务来发送邮件。

Java应用如何使用 Cron 服务?

Java应用使用 Cron 服务和PHP应用没什么区别。唯一差异的地方就是上传config.yaml文件方式不一样。java应用需要通过SVN将config.yaml文件上传,文件路径和war包路径一致。

应用的所有版本都会运行 Cron 服务吗?

请参见 Cron文档

资费问题

Java的计费规则是什么?

目前SAE Java应用的计费主要由两部分组成:1,JVM费用;2,流量。

JVM费用主要是指用户租用的JVM实例计费,按照运行的实例数*实例相应的等级费用/小时,JVM一旦被回收或者手工停止后,将不再产生这部分费用。

流量费用主要是指JVM产生的HTTP对外流量,目前这块计费没有开启。

上述所述的计费价格可以参考资费页面, 资费及账户等级

为什么Java的计费方式和PHP、Python不一样?

主要是因为SAE Java的实现架构和SAE PHP不完全一样,从而导致运行成本也不一样。在SAE Java平台上,各用户独享各自的JVM,我们的计费完全按照JVM instance来进行。

我怎么才能节省费用?

节省费用有以下方式:

  1. 在创建应用时,选择合适等级的JVM,比如你的应用规模较小时,可以优先选择经济型的JVM。
  2. 可以创建较小数量的JVM,用户的费用和JVM数量成正比。
  3. 不用时,可以手动关闭JVM。
  4. 当然,用户还可以积极参加SAE举办的各种活动,获得云豆支持。

JVM被回收后如何被唤醒?唤醒需要多长时间?

长期没被访问的应用会被回收,当请求再次来到的时候会将JVM唤醒,唤醒操作时间根据应用启动时间而定,通常情况下在30秒之内。