Hyperledger fabric 无法获取下一个结果:查询\状态\下一个失败:事务ID:XXXXX:无分类账上下文

Hyperledger fabric 无法获取下一个结果:查询\状态\下一个失败:事务ID:XXXXX:无分类账上下文,hyperledger-fabric,blockchain,hyperledger-chaincode,couchdb-mango,Hyperledger Fabric,Blockchain,Hyperledger Chaincode,Couchdb Mango,我正在尝试使用chaincode中的查询从区块链获取数据。我在区块链中调用了大约2,50000条记录,并尝试使用查询获取数据。当我运行链码并获取对等日志时,我得到以下错误 对等日志中的链码错误: 这是我的密码: queryStringsa := fmt.Sprintf("{\"selector\":{\"$and\":[{\"savesID\":{\"$ne\":\"%s\"}},{\"bankID\":{\"$eq\":\"%s\"}},{\"ytdSavedFlag\":{\"$ne\":

我正在尝试使用chaincode中的查询从区块链获取数据。我在区块链中调用了大约2,50000条记录,并尝试使用查询获取数据。当我运行链码并获取对等日志时,我得到以下错误

对等日志中的链码错误:

这是我的密码:

queryStringsa := fmt.Sprintf("{\"selector\":{\"$and\":[{\"savesID\":{\"$ne\":\"%s\"}},{\"bankID\":{\"$eq\":\"%s\"}},{\"ytdSavedFlag\":{\"$ne\":\"%s\"}},{\"saveMonthYear\":{\"$eq\":\"%s\"}}]},\"use_index\":[\"_design/indexSavesDataReportDoc\",\"indexSavesDataReportName\"]}","null",bankidsave,"Yes",lastImportDatekey)
queryResultss11sa, errsav := getQueryResultForQueryString(stub, queryStringsa)


// getQueryResultForQueryString
func getQueryResultForQueryString(stub shim.ChaincodeStubInterface, queryString string) ([]byte, error) {
 _scbLogger.Infof(string("**********************************"))
 _scbLogger.Infof(string("getQueryResultForQueryString queryString : "+ queryString))
 _scbLogger.Infof(string("**********************************"))

 resultsIterator, err := stub.GetQueryResult(queryString)

 if err != nil {
    _scbLogger.Error("Error Starting SCB-Efficiency Chaincode is " + string(err.Error()))
    return nil, err
 }
 defer resultsIterator.Close()

  // buffer is a JSON array containing QueryRecords
   var buffer bytes.Buffer
   buffer.WriteString("[")
   bArrayMemberAlreadyWritten := false
   fmt.Println("resultsIterator length : ", (resultsIterator))
   for resultsIterator.HasNext() {
    queryResponse, err := resultsIterator.Next()
    //fmt.Println("queryresponse inside for next : ", queryResponse)
    if err != nil {
        fmt.Println("$$$$$$$$$$$ error in reuslt iterator  : ", err)
        return nil, err
    }
    // Add a comma before array members, suppress it for the first array member
    if bArrayMemberAlreadyWritten == true {
        buffer.WriteString(",")
    }
    buffer.WriteString("{\"Key\":")
    buffer.WriteString("\"")
    buffer.WriteString(queryResponse.Key)
    buffer.WriteString("\"")

    buffer.WriteString(", \"Record\":")
    // Record is a JSON object, so we write as-is
    //fmt.Println("string(queryResponse.Value) : ",string(queryResponse.Value))
    buffer.WriteString(string(queryResponse.Value))
    buffer.WriteString("}")
    bArrayMemberAlreadyWritten = true
 }
 buffer.WriteString("]")
 //fmt.Printf("- getQueryResultForQueryString queryResult:\n%s\n", buffer.String())
 return buffer.Bytes(), nil
}
我在同一个函数中有5组不同的查询。有时很少有查询返回查询结果,有时没有查询给出结果,而是显示上述错误


当我在CouchDB fauxton中运行相同的查询时,我得到了查询结果。当我为更少的记录运行相同的函数时,查询工作正常,没有任何错误

您可以尝试将反斜杠(\)更改为正斜杠(/)…我对这个主题不太了解,但我知道反斜杠对于表示转义字符有特殊意义…如果使用反斜杠表示目录,则会产生问题。要么我们需要将它们改为正向斜杠,要么我们可以通过在开头加上一个“r”来明确表示它是一个原始字符串。谢谢您的回复@hafiz031。当我将查询作为字符串传递时,它不接受正斜杠(/)。您可以尝试将反斜杠(\)更改为正斜杠(/)…我对此主题不太了解,但我知道反斜杠对于表示转义字符有特殊意义…如果我们使用反斜杠表示目录,则会产生问题。要么我们需要将它们改为正向斜杠,要么我们可以通过在开头加上一个“r”来明确表示它是一个原始字符串。谢谢您的回复@hafiz031。当我将查询作为字符串传递时,它不接受正斜杠(/)。