Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hazelcast实例未激活!在3.2.1中_Java_Multithreading_Caching_Hazelcast - Fatal编程技术网

Java Hazelcast实例未激活!在3.2.1中

Java Hazelcast实例未激活!在3.2.1中,java,multithreading,caching,hazelcast,Java,Multithreading,Caching,Hazelcast,我在hazelcast 3.2.1上设置了两个节点,每个节点包含500 MB的数据 我们创建了一个测试环境,其中有3个线程试图同时访问HazelcastInstance客户端。在这种情况下,只有一个线程成功获取map实例并能够获得输出。其他两个线程显示以下错误 日志 ** 源代码 ** 单身人士 import java.io.Serializable; import java.util.Arrays; import java.util.HashSet; import java.util.Iter

我在hazelcast 3.2.1上设置了两个节点,每个节点包含500 MB的数据

我们创建了一个测试环境,其中有3个线程试图同时访问HazelcastInstance客户端。在这种情况下,只有一个线程成功获取map实例并能够获得输出。其他两个线程显示以下错误

日志

**

源代码

**

单身人士

import java.io.Serializable;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;


import com.hazelcast.client.HazelcastClient;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.config.InMemoryFormat;
import com.hazelcast.config.NearCacheConfig;
import com.hazelcast.core.HazelcastInstance;




 public class cacheSigleton implements Serializable {

 private static final long serialVersionUID = 1L;

 public static cacheSigleton INSTANCE = null;

 private static ClientConfig clientConfig = null;
 private static HazelcastInstance cacheClient = null;


 private static Set<String> nearcaches = new HashSet<String>(
 Arrays.asList("HOLIDAY_DATE_MAP","PARAMETERS_MAP"));



 private cacheSigleton() {

 if (clientConfig == null || cacheClient == null) {


 clientConfig = new ClientConfig();
 clientConfig.getGroupConfig().setName("dev")
 .setPassword("dev-pass");

 Iterator<String> iterator = nearcaches.iterator();
 String near = null;
 NearCacheConfig nearCacheConfig = null;
 while (iterator.hasNext()) {
 near = iterator.next();
 nearCacheConfig = new NearCacheConfig();
 nearCacheConfig.setEvictionPolicy("NONE");
 nearCacheConfig.setInMemoryFormat(InMemoryFormat.OBJECT);
 clientConfig.addNearCacheConfig(near, nearCacheConfig);
 }
 cacheClient = HazelcastClient.newHazelcastClient(clientConfig);
 }

 }



 public static cacheSigleton getInstance() {

 if(INSTANCE == null){

 synchronized(cacheSigleton.class)  {

 INSTANCE = new cacheSigleton();

 }
 }

 return INSTANCE;

 }

 public HazelcastInstance getHZInstance(){
      return cacheClient;

 }


 }
import java.io.Serializable;
导入java.util.array;
导入java.util.HashSet;
导入java.util.Iterator;
导入java.util.Set;
导入com.hazelcast.client.HazelcastClient;
导入com.hazelcast.client.config.ClientConfig;
导入com.hazelcast.config.InMemoryFormat;
导入com.hazelcast.config.NearCacheConfig;
导入com.hazelcast.core.hazelcast实例;
公共类cacheSigleton实现可序列化{
私有静态最终长serialVersionUID=1L;
公共静态cacheSigleton实例=null;
私有静态ClientConfig ClientConfig=null;
私有静态HazelcastInstance cacheClient=null;
私有静态集nearcaches=新哈希集(
asList(“假日\日期\映射”,“参数\映射”);
私有cacheSigleton(){
if(clientConfig==null | | cacheClient==null){
clientConfig=newclientconfig();
clientConfig.getGroupConfig().setName(“dev”)
.setPassword(“开发通行证”);
迭代器迭代器=nearcaches.Iterator();
字符串near=null;
NearCacheConfig NearCacheConfig=null;
while(iterator.hasNext()){
near=iterator.next();
nearCacheConfig=新的nearCacheConfig();
nearCacheConfig.setReceionPolicy(“无”);
nearCacheConfig.setInMemoryFormat(InMemoryFormat.OBJECT);
addNearCacheConfig(near,nearCacheConfig);
}
cacheClient=HazelcastClient.newHazelcastClient(clientConfig);
}
}
公共静态cacheSigleton getInstance(){
if(实例==null){
已同步(cacheSigleton.class){
INSTANCE=new cacheSigleton();
}
}
返回实例;
}
公共HazelcastInstance getHZInstance(){
返回缓存客户端;
}
}
线程执行

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;



public class Threadimp implements Runnable{


 private  HazelcastInstance HZinstance = null;
 private int id = 0;

 public Threadimp(HazelcastInstance HZinstance, int id) {
 this.HZinstance = HZinstance;
 this.id = id;
 }


   public void run(){

   execute();
   }



 public void execute() {

 //Keys to retrieve the HZ map values
     Set<String> keys = new HashSet<String>(
     Arrays.asList(""18-Feb-05AAB","09-Jul-10AAB","24-Aug-07AAB","16-Jan-05AABNM","01-Jan-06AAB","16-Jan-09AAB","20-Feb-05AABNM","20-Feb-09AAB","09-Jan-06AAB","26-Jun-09AAB","31-Jul-08AABMY","25-Oct-12AAB","17-Oct-13AAB","03-Dec-11AAB"));




 long begin = System.currentTimeMillis();

        IMap<Object, Object> map = this.HZinstance.getMap("HOLIDAY_DATE_MAP");

     Iterator<String> iterator = keys.iterator();
 String key = null;
 Object out = null;

 while(iterator.hasNext()){
 key = iterator.next();
 out =  map.get(key);
 }



 long firstRead = System.currentTimeMillis() - begin;
 System.out.println("ID: " + id + " " + begin+ "  totaltime  " +firstRead);


 }

 public static void main(String args[]) throws Exception
 {

 System.out.println("Thread Starts");

 cacheSigleton instance = cacheSigleton.getInstance();
 HazelcastInstance HZinstance = instance.getHZInstance(); 


     Thread test1 = new Thread(new Threadimp(HZinstance, 1));


     Thread test2 = new Thread(new Threadimp(HZinstance, 2));
     Thread test3 = new Thread(new Threadimp(HZinstance, 3));

     test1.start();
     test2.start();
     test3.start();

     System.out.println("Thread End");
 }


}
导入java.util.array;
导入java.util.HashSet;
导入java.util.Iterator;
导入java.util.Map;
导入java.util.Set;
导入com.hazelcast.core.hazelcast实例;
导入com.hazelcast.core.IMap;
公共类Threadimp实现可运行{
私有HazelcastInstance HZinstance=null;
私有int id=0;
公共线程IMP(HazelcastInstance HZinstance,内部id){
this.HZinstance=HZinstance;
this.id=id;
}
公开募捐{
执行();
}
public void execute(){
//检索HZ映射值的键
Set keys=newhashset(
数组.asList(““18-Feb-05AAB”,“09-Jul-10AAB”,“24-Aug-07AAB”,“16-Jan-05AABNM”,“01-Jan-06AAB”,“16-Jan-09AAB”,“20-Feb-05AABNM”,“20-Feb-09AAB”,“09-Jan-06AAB”,“26-Jun-09AAB”,“31-Jul-08AABMY”,“25-Oct-12AAB”,“17-Oct-13AAB”,“03-Dec-11AAB”));
long begin=System.currentTimeMillis();
IMap map=this.HZinstance.getMap(“假日日期映射”);
迭代器迭代器=keys.Iterator();
字符串键=null;
对象输出=空;
while(iterator.hasNext()){
key=iterator.next();
out=map.get(键);
}
long firstRead=System.currentTimeMillis()-开始;
System.out.println(“ID:+ID+”+begin+“totaltime”+firstRead);
}
公共静态void main(字符串args[])引发异常
{
System.out.println(“线程启动”);
cacheSigleton实例=cacheSigleton.getInstance();
HazelcastInstance HZinstance=instance.getHZInstance();
螺纹测试1=新螺纹(新螺纹IMP(HZinstance,1));
螺纹测试2=新螺纹(新螺纹IMP(HZinstance,2));
螺纹测试3=新螺纹(新螺纹IMP(HZinstance,3));
test1.start();
test2.start();
test3.start();
System.out.println(“螺纹端”);
}
}
提前感谢,,
Sathish已经在邮件列表上看到了你的帖子。我快速浏览了一下,在我看来,这就像是一个竞争条件,代理的一部分已经初始化,而其他部分还没有初始化。需要更深入地研究一下。也许你可以在bugtracker中创建一个bug,或者可以创建一个unittest,使它一直失败?

这bug已在3.2.2-SNAPSHOT中解决。它将在本周或下周初发布。

感谢pveentjer的快速响应。
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;



public class Threadimp implements Runnable{


 private  HazelcastInstance HZinstance = null;
 private int id = 0;

 public Threadimp(HazelcastInstance HZinstance, int id) {
 this.HZinstance = HZinstance;
 this.id = id;
 }


   public void run(){

   execute();
   }



 public void execute() {

 //Keys to retrieve the HZ map values
     Set<String> keys = new HashSet<String>(
     Arrays.asList(""18-Feb-05AAB","09-Jul-10AAB","24-Aug-07AAB","16-Jan-05AABNM","01-Jan-06AAB","16-Jan-09AAB","20-Feb-05AABNM","20-Feb-09AAB","09-Jan-06AAB","26-Jun-09AAB","31-Jul-08AABMY","25-Oct-12AAB","17-Oct-13AAB","03-Dec-11AAB"));




 long begin = System.currentTimeMillis();

        IMap<Object, Object> map = this.HZinstance.getMap("HOLIDAY_DATE_MAP");

     Iterator<String> iterator = keys.iterator();
 String key = null;
 Object out = null;

 while(iterator.hasNext()){
 key = iterator.next();
 out =  map.get(key);
 }



 long firstRead = System.currentTimeMillis() - begin;
 System.out.println("ID: " + id + " " + begin+ "  totaltime  " +firstRead);


 }

 public static void main(String args[]) throws Exception
 {

 System.out.println("Thread Starts");

 cacheSigleton instance = cacheSigleton.getInstance();
 HazelcastInstance HZinstance = instance.getHZInstance(); 


     Thread test1 = new Thread(new Threadimp(HZinstance, 1));


     Thread test2 = new Thread(new Threadimp(HZinstance, 2));
     Thread test3 = new Thread(new Threadimp(HZinstance, 3));

     test1.start();
     test2.start();
     test3.start();

     System.out.println("Thread End");
 }


}