Home Comments

TopicManager::retrieveAll and Ice.MessageSizeMax

raycrayraycray Member Ray ChengProject: Electronic Trading


I am using IceStorm happily. In my application i always call TopicManager::retrieveAll when creating multiple topics to reduce the network traffics. But as my topics keep growing I found the TopicManager::retrieveAll will throw ::Ice::MemoryLimitException with below message(I am already set Ice.MessageSizeMax=5120):

protocol error: memory limit exceeded:
requested 5250534 bytes, maximum allowed is 5242880 bytes (see Ice.MessageSizeMax)

What is the best practice to create large amount of topics and when there are already lots of topic created in Storm?



  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff


    Sounds like you are creating many topics. Why do you use retrieveAll here? Given that you have many topics, I would avoid using retrieveAll which is not very scalable. Can't you just call TopicManager.create to create the topics? It's not clear to me why using retrieveAll would reduce network traffic with your application. Can you provide more details on your design?


  • raycrayraycray Member Ray ChengProject: Electronic Trading

    I use retrieveAll bcos my application may create thousands of topics at one shoot, but those topics could be already created. So it use retrieveAll and check locally which topics need to create.

Sign In or Register to comment.