服务器切换后,近期Camstar 出现了如下报错
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond。
主要表现为 页面加载缓慢或失败直接报错。截图信息是查看人员操作历史记录。
另外一处报错位置是加载产品信息。
查询核对这两处都是Camstar原生功能。实施过程中并未做修改 ,产品信息 近期推送数据量加大。单表达到了14w数量级。之前是7w左右。而camstar Portal是一次加载了所有数据。分页记录达到上限,造成卡顿。
解决方案是重写后台原生数据加载方法。
覆写此Query。加入返回行限制。百分之九十的情况是根据NAME支持模糊匹配返回所有记录。
1.复制SelectionValuesEx_RDO query 改名为SelectionValuesEx_RDO_Product
2.SelectionValuesEx_RDO_Product Details 中 的SQL 可以加入 rounum<6500 (如果是Oracle的话)
3.然后去Product那边把SelectionValuesEx_RDO 换成 SelectionValuesEx_RDO_Product就好了。
4.更新MDB ,重启服务。这样Portal 就只返回6500行数据 了。
SELECT $$cdo:rbase.Name, $$cdo.Revision, $$cdo:rbase.RevOfRcd,
$$cdo.IsFrozen, $$cdo.InstanceId, $$cdo.Description,
$$cdo.Status
, ChangeStatus.LastChangeDate AS @header:name="LastEditTime":datatype=Timestamp:Label="LastEditDate"
, ChangeStatus.LastChangeDateGMT AS @header:name="LastEditTimeGMT":datatype=Timestamp:Label="LastEditDateGMT"
, E.EmployeeName AS @header:name="LastEditedBy":datatype=String:Label="LastEditBy"
FROM $$cdo
INNER JOIN $$cdo:rbase ON $$cdo.Base = $$cdo:rbase.InstanceId
LEFT JOIN ChangeStatus ON $$cdo.ChangeHistory = ChangeStatus.ChangeStatusId
LEFT JOIN Employee E ON ChangeStatus.UserId = E.EmployeeId
WHERE ($$cdo.CDOTypeId = $$cdo:id or ?SpecificTypeOnly <> 1)
AND $$cdo.CDOTypeId in ($$cdo:ids)
AND $$cdo:rbase.Name like ?NameFilter
AND ##csiFilterTagMatch($$cdo.FilterTags, ? __filterTags, ? __allowUntaggedInstances) = 1
AND ROWNUM<6500
ORDER BY $$cdo:rbase.Name, $$cdo.Revision