2015-02-25 2 views
1

У меня есть экземпляр hazelcast, определяемый с использованием пространства имен орехового дерева и карты в нем. также используя абстракцию Spring cache для определения cacheManager.Hazelcast с пространством имен Spring - инициализировать узел при загрузке контекста

<bean name="siteAdminPropertyPlaceHolderConfigurer" 
     class="org.sample.SiteAdminPropertyPlaceHolderConfigurer"> 
    <property name="order" value="1000"/> 
    <!-- last one--> 
</bean> 

<!-- hazelcast cache manager --> 
<hz:hazelcast id="instance" lazy-init="true"> 
    <hz:config> 
     <hz:group name="${HAZEL_GROUP_NAME}" password="${HAZEL_GROUP_PASSWORD}"/> 
     <hz:network port="${HAZEL_NETWORK_PORT}" port-auto-increment="true"> 
      <hz:join> 
       <hz:multicast enabled="${HAZEL_MULTICAST_ENABLED}" 
           multicast-group="224.2.2.3" 
           multicast-port="54327"/> 
       <hz:tcp-ip enabled="${HAZEL_TCP_ENABLED}"> 
        <hz:members>${HAZEL_TCP_MEMBERS}</hz:members> 
       </hz:tcp-ip> 
      </hz:join> 
     </hz:network> 
     <hz:map name="oauthClientDetailsCache" 
       backup-count="1" 
       max-size="0" 
       eviction-percentage="30" 
       read-backup-data="true" 
       eviction-policy="NONE" 
       merge-policy="com.hazelcast.map.merge.PassThroughMergePolicy"/> 
    </hz:config> 
</hz:hazelcast> 

<bean id="hazelcastCacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager" lazy-init="true" 
     depends-on="instance"> 
    <constructor-arg ref="instance"/> 
</bean> 

Проблема заключается в том, что весной этого года контекст используется также для других инструментов, которые мы имеем, кроме сервера и hazelcast начинает прослушивание порта и инструмента фактически никогда выхода. Я попытался отключить все сетевое соединение (enabled = false), и я хотя бы программно их разрешил только при запуске сервера. но он не работает.

Я не хочу отказываться от пространства названия весны, так как его очень удобно разработчикам определять новые карты (весенние кеши). Также я хочу, чтобы в нем был небольшой код каретки.

любая идея, как этого достичь? спасибо Shlomi

ответ

2

Я не нашел способ сделать это, кроме сообщения о том, что потомок заканчивается в конце каждого запуска инструмента.

Я также переместил определение выше в отдельный XML-файл контекста, чтобы он не был загружен инструментами (по крайней мере, не всеми из них). Hazelcase.shutdownAll();