The code is here:
String sql = "explain SELECT FID,FNUMBER FROM
\"customerCache\".CustomerIgniteInfo WHERE FUSEDSTATUS = 3)";
Class.forName("org.apache.ignite.IgniteJdbcThinDriver"); Connection conn =
DriverManager.getConnection("jdbc:ignite:thin://192.168.63.36?distributedJoins=true");
PreparedStatement preparedStatement = conn.prepareStatement(sql);
The configuration can see the attachment.
Can transaction cause this problem?
I also use spring with my project.
package com.kingdee.ignite.common.config;
import javax.cache.configuration.MutableConfiguration;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
import org.apache.ignite.configuration.CacheConfiguration;
import com.kingdee.ignite.common.dao.SqlCustomFunction;
public abstract class AbstractCacheConfiguration<K, V> extends
CacheConfiguration<K, V>{
private static final long serialVersionUID = 6000710247906756326L;
public AbstractCacheConfiguration(){
initialization();
}
public void initialization(){
//设置é»è®¤å¤ä»½èç¹0
setDefaultBackups();
//设置é»è®¤ååºç¼å
setDefaultCacheMode();
//设置é»è®¤åæ¥å¤ä»½
//çå¾
主èç¹çåæè
æäº¤æä½å®æ
//使¯ä¸çå¾
å¤ä»½èç¹æ´æ°å®æ
setDefaultWriteSynchronizationMode();
//éå
setDefaultWriteThrough();
//é»è®¤å¯ç¨åå
setDefaultWriteBehindEnabled();
//é»è®¤å¯ç¨é读
setDefaultReadThrough();
//ååå·æ°é»è®¤è®¾ç½®ä¸º10240
setDefaultWriteBehindFlushSize();
//æ¯é10ç§ ååå·æ°
setDefaultWriteBehindFlushFrequency();
//设置æä¹
åå°æ°æ®åºçè®°å½æ°ï¼10000
setWriteBehindBatchSize();
setWriteBehindFlushThreadCount();
//åå¹³è¡¡æ¶æ¯ç大å°ï¼è®¾ç½®ä¸º4M
setRebalanceBatchSize();
setIndexedTypes();
//åå¹³è¡¡å»¶è¿æ¶é´ï¼è®¾ç½®ä¸º100 ms
setRebalanceThrottle();
//å®ä¹è·åbosUidçsql彿°
setSqlFunctionBosUid();
}
/**
* 使ç¨é»è®¤ååºæ¨¡å¼
* @return CacheConfigurationå®ä¾
*/
public CacheConfiguration<K, V> setDefaultCacheMode() {
CacheMode partitioned = CacheMode.PARTITIONED;
return super.setCacheMode(partitioned);
}
/**
* åºäºæ§è½åå , 设置å¤ä»½èç¹ä¸º1
* @return CacheConfigurationå®ä¾
*/
public CacheConfiguration<K, V> setDefaultBackups() {
return super.setBackups(1);
}
/**
* é»è®¤è®¾ç½®å®¢æ·ç«¯èç¹ä¼çå¾
主èç¹çåæè
æäº¤æçºµå®æï¼ä½ä¸ä¼çå¾
å¤ä»½èç¹çæ´æ°å®æ
* @return CacheConfigurationå®ä¾
*/
public CacheConfiguration<K, V> setDefaultWriteSynchronizationMode() {
CacheWriteSynchronizationMode primarySync =
CacheWriteSynchronizationMode.PRIMARY_SYNC;
return super.setWriteSynchronizationMode(primarySync);
}
/**
* 设置ååå¯ç¨
* @return CacheConfigurationå®ä¾
*/
public CacheConfiguration<K, V> setDefaultWriteBehindEnabled() {
return super.setWriteBehindEnabled(true);
}
/**
* 设置é读å¯ç¨
* @return CacheConfigurationå®ä¾
*/
public MutableConfiguration<K, V> setDefaultReadThrough() {
return super.setReadThrough(true);
}
public MutableConfiguration<K, V> setDefaultWriteThrough() {
return super.setWriteThrough(true);
}
/**
* ååç¼åçæå¤§å¼ï¼å¦æè¶
è¿äºè¿ä¸ªéå¼ï¼
* ææçç¼åæ°æ®é½ä¼è¢«å·å
¥ç¼ååå¨ç¶ååç¼å被æ¸
空ã
* 妿å¼ä¸º0ï¼å·æ°æä½å°ä¼ä¾æ®å·æ°é¢çé´éï¼
* 注æä¸è½å°åç¼å大å°åå·æ°é¢çé½è®¾ç½®ä¸º0
* @return CacheConfigurationå®ä¾
*/
public CacheConfiguration<K, V> setDefaultWriteBehindFlushSize() {
return super.setWriteBehindFlushSize(10240);
}
public CacheConfiguration<K, V> setWriteBehindBatchSize() {
return super.setWriteBehindBatchSize(10000);
}
public CacheConfiguration<K, V> setDefaultWriteBehindFlushFrequency() {
return super.setWriteBehindFlushFrequency(10000);
}
public CacheConfiguration<K, V> setIndexedTypes(Class<?> clazz){
return super.setIndexedTypes(String.class,clazz);
}
public CacheConfiguration<K, V> setWriteBehindFlushThreadCount(){
return super.setWriteBehindFlushThreadCount(3);
}
public CacheConfiguration<K,V> setRebalanceBatchSize(){
return super.setRebalanceBatchSize(4*1024*1024);
}
public CacheConfiguration<K,V> setRebalanceThrottle(){
return super.setRebalanceThrottle(100);
}
public CacheConfiguration<K,V> setSqlFunctionBosUid(){
return super.setSqlFunctionClasses(SqlCustomFunction.class);
}
}
package com.kingdee.ignite.common.config;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.log4j.Logger;
import com.kingdee.ignite.common.test.TestMain;
/**
* åå¸å¼ç¼å使ç¨é
ç½®
* å¯ä»¥ç»§æ¿è¯¥é
ç½®,å®ç°å¤ä¸ªé
ç½®å¤ä¸ªå è½½
* éè¿ç»§æ¿å¯ä»¥å®ç°ä»£ç éç¨,ä¸éè¦åé
ç½®æä»¶å¤å¶ç²è´´å¤ä¸ªbean
*
* 该类å®ä¹æå¸¸ç¨çigniteå¯å¨çé
ç½®
*/
public abstract class AbstractConfiguration extends IgniteConfiguration {
private List<String> defaultAddresses;
private Logger logger = Logger.getLogger(AbstractConfiguration.class);
public AbstractConfiguration(){
initialization();
}
public void initialization(){
//setDefaultCommunicationSpi();
//åå§åé»è®¤ç¼åé
ç½®
setDefaultCacheConfiguration();
//åå§åé»è®¤é群åç°
//setDefaultDiscoverySpi();
}
public void setDefaultCacheConfiguration() {
CacheConfiguration[] configuration = super.getCacheConfiguration();
configuration = configuration == null ?
new CacheConfiguration[]{
new DefaultCacheConfiguration()
} : configuration;
super.setCacheConfiguration(configuration);
}
public IgniteConfiguration setDefaultDiscoverySpi() {
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
List<String> ipAddresses = getDefaultAddresses();
ipFinder.setAddresses(ipAddresses);
spi.setIpFinder(ipFinder);
return super.setDiscoverySpi(spi);
}
/**
* å¯å¨é群åå§èç¹ip åè¿ç¨åç°igniteé群èç¹ip
åç±»åºè¯¥å¤åè¯¥æ¹æ³
*
* @return ipå°åéå
*/
public List<String> getDefaultAddresses() {
if (defaultAddresses == null) {
defaultAddresses = new ArrayList<String>();
}
InputStream in = null;
InputStreamReader reader = null;
try {
in =
AbstractConfiguration.class.getResourceAsStream("iplist.txt");
reader = new InputStreamReader(in, "UTF-8");
BufferedReader br = new BufferedReader(reader);
String line = null;
while ((line = br.readLine()) != null) {
defaultAddresses.add(line);
logger.error("line===" + line);
}
} catch (Exception e) {
} finally {
try {
in.close();
} catch (IOException e) {
}
}
return defaultAddresses;
}
}