Ignite:使用PHP PDO进行选择时出现问题

Ignite:使用PHP PDO进行选择时出现问题,ignite,Ignite,使用PHP PDO访问Ignite集群 1) 使用PHP PDO脚本创建了一个表 生成的缓存在Ignite Web控制台中可见 可以从Ignite Web控制台发出SQL选择/插入 可以使用独立的PHP PDO发布SQL插入 因此,SQL表/缓存似乎功能齐全,但: 2) 从PHP PDO脚本内部选择失败 PHP PDO脚本与Ignite站点上给出的示例脚本基本相同 <?php try { $dbh=new PDO('odbc:ApacheIgniteDSN'); $dbh-

使用PHP PDO访问Ignite集群

1) 使用PHP PDO脚本创建了一个表

生成的缓存在Ignite Web控制台中可见

可以从Ignite Web控制台发出SQL选择/插入

可以使用独立的PHP PDO发布SQL插入

因此,SQL表/缓存似乎功能齐全,但:

2) 从PHP PDO脚本内部选择失败

PHP PDO脚本与Ignite站点上给出的示例脚本基本相同

<?php
try {
    $dbh=new PDO('odbc:ApacheIgniteDSN');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $res=$dbh->query('SELECT id from Person');
// no errors up to here
//exit;
    if ($res == FALSE)
        print_r("Exception");

    // the following results in errors
    foreach($res as $row) {
        print_r($row);
    }
}
catch (PDOException $e) {
    print "Error: " . $e->getMessage() . "\n";
    exit;
}*

请注意,我使用CREATETABLE命令(来自PHPPDO脚本)创建了SQL表,而不是使用queryEntities在缓存中显式指定它。但是,Web控制台可以正确地看到它,并且您可以在那里查询它,因此可以假设SelectfromPDO也可以工作,但它不能

这是一个错误,这是由MS cursor库引起的,显然PDO在某些情况下使用了该库。Ignite的Jira声明,它已被修复,补丁已合并到master,所以您可以等待2.5版本,或者使用master branch代码。

您的Ignite版本是什么?@isapego 2.4.0。使用kubernetes部署<代码>图片:apacheignite/ignite:2.4.0我安装了几天前的夜间版本(2.5.0.20180426),但仍然存在完全相同的问题。您提到的JIRA问题似乎修复了另一个ODBC错误。@SV,这很奇怪,因为我可以在2.4版上重现您的问题,但在2.5版上无法重现。您确定已正确安装所有内容吗?由于主机环境重新定位(与Ignite无关)的一些问题,目前无法重新测试。我从头开始重新安装了Ignite cluster(使用2.5.0版本),以及所有Ignite Windows客户端LIB。它现在工作得很好。我想我以前在2.5测试版(首先安装2.4版之后)中看到过这个错误,因为Ignite ODBC驱动程序可能无法更新。无论如何,干得不错。
[17:00:30,074][SEVERE][grid-nio-worker-client-listener-0-#30][ClientListenerProcessor] Failed to process selector key [ses=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192], super=AbstractNioClientWorker [idx=0, bytesRcvd=0, bytesSent=0, bytesRcvd0=0, bytesSent0=0, select=true, super=GridWorker [name=grid-nio-worker-client-listener-0, igniteInstanceName=null, finished=false, hashCode=1314397987, interrupted=false, runner=grid-nio-worker-client-listener-0-#30]]], writeBuf=null, readBuf=null, inRecovery=null, outRecovery=null, super=GridNioSessionImpl [locAddr=/100.96.3.26:10805, rmtAddr=/100.96.3.1:6733, createTime=1523811628969, closeTime=0, bytesSent=69, bytesRcvd=75, bytesSent0=69, bytesRcvd0=75, sndSchedTime=1523811629031, lastSndTime=1523811629031, lastRcvTime=1523811629020, readsPaused=false, filterChain=FilterChain[filters=[GridNioAsyncNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, directMode=false]], accepted=true]]]
java.io.IOException: Connection reset by peer