Archived
This forum has been archived. Please start a new discussion on GitHub.
Why Server create connectionpool repeatedly while Client request Server ?
Hi all,
My application use the Ice-Grid-Box, and can run without any Error/Warning.But it spend lots of time on CREATING DIFFERENT CONNECTION POOL foreach different Client.
I want to make them share only one connection pool, how/what should I do?
The snippet of my application connection pool and application.xml as following:
The helloClient creats a connection pool after requested, and othersClient also create their OWN connection pools. Just this issue.
Best regards,
Zhaoningbo
My application use the Ice-Grid-Box, and can run without any Error/Warning.But it spend lots of time on CREATING DIFFERENT CONNECTION POOL foreach different Client.
I want to make them share only one connection pool, how/what should I do?

The snippet of my application connection pool and application.xml as following:
// filename:BoneCPs. // description: multiple source connection pool. public static Map<String, BoneCP> poolsMap = null; static { try { // run repeatedly BoneCPsUtil bcpsUtil = new BoneCPsUtil(); poolsMap = bcpsUtil.getPoolsMap(); } catch (Exception e) { e.printStackTrace(); } }
<icegrid> <application name="cepsApp"> <service-template id="HelloService"> <parameter name="name" /> <service name="${name}" entry="com.demo.HelloService"> <properties> <property name="Hello.Identity" value="hello" /> </properties> <adapter name="helloAdapter-${name}" endpoints="default" id="helloAdapter-${name}" replica-group="HelloGroup" server-lifetime="false" /> </service> </service-template> <replica-group id="HelloGroup"> <load-balancing type="round-robin" n-replicas="1" /> <object identity="hello" type="com::demo::Hello" /> </replica-group> <!-- other templates--> <node name="node1"> <icebox id="HelloIceBoxNode1" activation="on-demand" exe="java"> <option>IceBox.Server</option> <env>classpath=/usr/share/java/Ice.jar:/usr/share/java/db-4.8.30.jar:/opt/demoproject/lib/*:/opt/demoproject/build/classes </env> <properties> <property name="IceBox.InstanceName" value="${server}" /> <property name="Ice.Admin.Endpoints" value="tcp -h 10.1.90.115" /> <property name="IceBox.Trace.ServiceObserver" value="1" /> </properties> <service-instance template="HelloService" name="HelloNode1First" /> <service-instance template="HelloService" name="HelloNode1Second" /> </icebox> <!-- other iceboxs--> </node> </application> </icegrid>
The helloClient creats a connection pool after requested, and othersClient also create their OWN connection pools. Just this issue.
Best regards,
Zhaoningbo
0
Comments
-
Hi all,
I have solved this problem, just by combining All-Services into One-Icebox. Because I guess, I find every IceBox maintain a ENV itself. is it ?
And to share resource between IceBox, I need more learn.
If anyone know about this, I would be very grateful for you further help.0 -
Hello,
It's good to see you figure out this issue, although unfortunately I don't understand what it was.
Ice does not create connection pools; it just creates connections between clients and servers. I'd suggest to read the 'Connection Management' article in this issue of the Connections newsletter for a good overview.
With respect to IceBox, you can share more between services (in the same IceBox) by using a shared communicator.
Best regards,
Bernard0