陈小冠 2020-06-24 11:29 采纳率: 0%
浏览 805
已结题

JAVA 通过KEPServer4.0 操作数据时报错:org.jinterop.dcom.common.JIException: Not enough storage is available to complete this operation

最近在做一个项目,使用KEPServerEX 4.0 采集PLC数据,项目是JAVA写的,程序写好后,开始能正常运行
,采集数据和远程操作设备都正常,但是程序运行了大概两天左右后就报错了,采集和操作都不行了,报错
内容如下:

org.jinterop.dcom.common.JIException: Not enough storage is available to complete this operation.  [0x8007000E]
    at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:1012)
    at org.jinterop.dcom.core.JIComServer.call(JIComServer.java:951)
    at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:293)
    at org.jinterop.dcom.core.JIComObjectImpl.call(JIComObjectImpl.java:159)
    at org.openscada.opc.dcom.common.impl.Helper.callIgnoreSpecificError(Helper.java:57)
    at org.openscada.opc.dcom.da.impl.OPCServer.addGroup(OPCServer.java:71)
    at org.openscada.opc.lib.da.Server.addGroup(Server.java:251)
    at org.openscada.opc.lib.da.Server.addGroup(Server.java:281)
    at com.xl.gngr.opc.OpcDeviceModify.modifyDeviceRateAndSwitch(OpcDeviceModify.java:75)
    at com.xl.gngr.controllerapp.OpcController.modifyDeviceRate(OpcController.java:52)
    at com.xl.gngr.controllerapp.OpcController$$FastClassBySpringCGLIB$$dc5c6886.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
    at com.xl.gngr.aop.LogAop.aroundAdvice(LogAop.java:94)
    at sun.reflect.GeneratedMethodAccessor302.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
    at com.xl.gngr.controllerapp.OpcController$$EnhancerBySpringCGLIB$$82380b6.modifyDeviceRate(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

实在不知道原因,各位大神帮看看。
我连接OPC是通过utgard来连接的,代码如下:

ConnectionInformation connectionInfo = new ConnectionInformation();
        connectionInfo.setHost("127.0.0.1");
        connectionInfo.setClsid("6E6170F0-FF2D-11D2-8087-00105AA8F840");
        connectionInfo.setUser("OPCUser");
        connectionInfo.setDomain("");
        connectionInfo.setPassword("123456");

        ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
        Server mServer =  new Server(connectionInfo, executor);
        try {
            mServer.connect();
            Group group = mServer.addGroup();
            //先通过OPC树形结构获取itemID
            FlatBrowser browser = mServer.getFlatBrowser();
            List<String> itemIdList = new ArrayList<>();
            for (String name : browser.browse()) {
                //匹配字符串获取想要的itemID
                if (name.startsWith("STAND14.Device1") && !name.contains("STAND14.Device1._")) {
                    itemIdList.add(name);
                }
            }
            int length = itemIdList.size();
            Item[] itemArr = new Item[length];
            for (int i = 0; i < length; i++) {
                itemArr[i] = group.addItem(itemIdList.get(i));
            }
            //读取数据
            Map<Item, ItemState> itemsMap = group.read(true, itemArr);
            //入库省略

            //关闭连接
            mServer.disconnect();
        }catch (Exception e){
            e.printStackTrace();
        }
  • 写回答

2条回答 默认 最新

  • hsygo 2021-03-31 11:47
    关注

    老哥,解决了吗,怎么解决的?

    评论

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 如何用visual studio code实现html页面
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?