可使用以下一种或多种技术发现地理处理服务的最常见问题:
- 对服务启用地理处理消息,重新运行任务并检查消息。
- 运行任务并检查 arcgisjobs 目录。
- 验证传输限制属性是否超过限制。
启用信息级别地理处理消息
地理处理工具消息包含执行地理处理任务所使用的详细分步帐户。在出现故障的情况下,地理处理消息将帮助您确定地理处理任务的准确故障点。发送到客户端的地理处理消息由地理处理服务的消息级别属性确定。消息分为四个级别,分别是无、错误、警告和信息。如果将消息级别设置为无,则地理处理任务的“执行任务”或“提交作业”操作将不会返回除任务是否成功以外的任何地理处理工具消息。信息级别会提供任务生成的所有地理处理消息,建议用于故障排除。可以通过 ArcGIS Server Manager 或 ArcMap,将地理处理服务的消息级别属性设置为信息级别,然后进一步排除故障。
提示:
如果将消息级别设置为“信息”级别后仍未收到任何地理处理消息,则表示输入无效。任务的输入参数值可能是不正确、不完整或无效的 JSON。您必须验证输入参数数据类型及其 JSON 值。
检查 arcgisjobs 目录
排除地理处理服务故障的另一种方法是对调试使用异步执行模式。可以通过 ArcGIS Server Manager 或 ArcMap 来编辑地理处理服务的执行模式属性。在异步执行模式下,服务器会在 Arcgisjobs 目录中为客户端提交的每一项作业创建唯一目录。每个目录都有一个 scratch 文件夹,用作服务器上运行的地理处理作业的临时工作空间。由异步作业生成的输出数据、中间(临时)数据和地理处理消息会写入临时工作空间。您可以检查临时工作空间中的数据,从而确定可能导致任务失败的问题。
arcgisjobs 目录是可配置的地理处理服务属性,可在发布时或发布之后进行修改。arcgisjobs 目录的默认路径是 <server_directories>\directories\arcgisjobs。异步作业的默认临时工作空间将为 <arcgis-jobs-folder>\<server_folder_if_any>\<gpservice_name>\<jobid>\scratch。
服务器临时工作空间的内容
- scratch 文件夹 - scratch 将包含基于文件的输出数据(例如 Shapefile、栅格等),具体取决于工具的功能。
- scratch.gdb - scratch.gdb 地理数据库位于 scratch 文件夹中,输出数据集(如要素类和地理数据库栅格)将写入 scratch.gdb 地理数据库中。
- messages.xml - message.xml 文件位于 scratch 文件夹中,并包含为地理处理任务记录的所有地理处理消息。XML 文件中的消息取决于地理处理服务的消息级别属性。
提示:
arcgisjobs 文件夹中的临时目录将以预定义的间隔进行删除,该间隔会作为服务器清理例程的一部分。清理持续时间由 arcgisjobs 目录的文件最长保留期限确定。默认值是 360 分钟,但服务器管理员可通过 ArcMap 或 ArcGIS Server Manager 对其进行更改。
提示:
执行任务期间,服务器会将模型或脚本生成的中间数据写入临时文件夹。但在执行结束时,将删除该中间数据。如果您要检查模型或脚本中的特定中间数据,请在模型或脚本中将其转换成输出参数,创建新结果,然后将该结果发布为服务。执行这项新服务以检查新的输出数据。
超出传输限制
有时,您的同步或异步任务可能已成功,但服务器返回的输出要素集或记录集参数可能不包含任何要素或记录。这种情况下,必须在 ArcMap 或 ArcGIS Server Manager 中增加地理处理服务的服务器返回的最大记录数属性的值。地理处理任务返回的最大输出要素和记录数由服务器返回的最大记录数属性确定。该属性的默认值为 1000 个记录或要素。当任务输出的记录或要素数大于服务器返回的最大记录数属性值时,即使任务已成功完成,地理处理任务也不会返回任何记录或要素。