This week's book giveaway is in the Artificial Intelligence forum.
We're giving away four copies of Pragmatic AI and have Noah Gift on-line!
See this thread for details.
Win a copy of Pragmatic AI this week in the Artificial Intelligence forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Campbell Ritchie
  • Tim Cooke
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Junilu Lacar
  • Knute Snortum
Saloon Keepers:
  • Ron McLeod
  • Ganesh Patekar
  • Tim Moores
  • Pete Letkeman
  • Stephan van Hulst
Bartenders:
  • Carey Brown
  • Tim Holloway
  • Joe Ess

Socket Receive error  RSS feed

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I am integrating java code inside MarkLogic to convert an EBCDIC file to ASCII using MLJAM. Apache Tomcat 7.0 is being used as the server. The code is running fine for small files, but for huge file processing, MarkLogic is throwing an error saying
SVC-SOCRECV: xdmp:http-post("http://10.76.81.81:8080/mljam/mljam/local/eval", adminadmin) -- Socket receive error: wait 10.78.14.16:63085-10.76.81.81:8080: Timeout (decodeResponseLine1)

1. I have tried increasing request timeout , keep alive timeout and session timeout in Marklogic admin console, but that is not working.
2. I tried increasing the -<session-config>
<session-timeout>60</session-timeout>
</session-config> in my apache-tomcat-7.0.57/conf/web.xml
I am not finding any configuration settings in my downloaded Apache Tomcat 7.0.57 to increase any socket timeout or keep alive timeout. Please help me as to where I can find these settings.
Attaching my MarkLogic code and sample input file for reference.
The code inside jam:eval-in('') is pure java code to convert any EBCDIC file (with packed decimals) to ASCII. The code is working fine in Eclipse and the file takes almost 4-5 mins to decode completely, but in MarkLogic after1 min its throwing Socket timeout error.
******************************************************Java code*********************************************
import java.io.*;

int PlusSign = 0x0C;
int MinusSign = 0x0D;
int NoSign = 0x0F;
int DropHO = 0xFF;
int GetLONibble = 0x0F;
int UNSIGNED_BYTE = 0xff;
int BITS_RIGHT = 0xf;
//print("Hello");

String Format = "ebcdic-cp-us";
String FiletoRead="D:/EBCDIC/VipTest1.txt";

InputStreamReader rdr;
InputStreamReader xxr;
int ECBDICChar=0;
try
{
rdr = new InputStreamReader(new FileInputStream(FiletoRead), java.nio.charset.Charset.forName(Format));
xxr= new InputStreamReader(new FileInputStream(FiletoRead));
int i=1;
int mainrecord_size=54;
int record_control_variable_size=4;
int loop_Record_size=25;
int j=1;
int Value_Creator=0;
int x=1;
long comp3_values=0;
String com3posList="";
int comp3_Pos=67;
boolean istranNumber=false;
byte[] byArray = new byte[10];
boolean Comp3LoopStared=false;
while((ECBDICChar = rdr.read()) != -1)
{
int zz=xxr.read();
if ((i>mainrecord_size))
{
if(i<=mainrecord_size+record_control_variable_size)
{
print(zz);
Value_Creator=Value_Creator * 10 + zz;
if(Value_Creator>0)
{
istranNumber=true;
for (int iterator=0;iterator<Value_Creator;iterator++)
{
int value =comp3_Pos+iterator*loop_Record_size;
com3posList+=","+value+",";
}

}
}
}
int vCheck=0;
if((com3posList.contains(","+Integer.toString(i)+",")))
{
if(istranNumber)
{
vCheck=1;
}
}
if((vCheck==1)||Comp3LoopStared)
{
byArray[x-1]= (byte)ECBDICChar;
x++;
Comp3LoopStared=true;
if(x==10)
{
{
long val = 0L;
boolean negative = false;
for (int iter = 0; iter < byArray.length; iter++)
{
int raw = byArray[iter] & UNSIGNED_BYTE;
int digitA = raw >> 4;
int digitB = raw & BITS_RIGHT;
if (digitA < 10) {
val *= 10L;
val += (long) digitA;

} else if (digitA == 11 || digitA == 13) {
negative = true;
}
if (digitB < 10) {
val *= 10L;
val += (long) digitB;

} else if (digitB == 11 || digitB == 13) {
negative = true;
}
}
if (negative)
val = -val;
comp3_values= val;
}
x=1;
print(comp3_values);
Comp3LoopStared=false;
}
}
if((i<mainrecord_size+1)||(i>mainrecord_size+record_control_variable_size))
{
if(!Comp3LoopStared)
{
print((char)ECBDICChar);
}
}
if (j>=mainrecord_size+(Value_Creator*loop_Record_size)+record_control_variable_size)
{
Value_Creator=0;
i=1;
j=1;
istranNumber=false;
//print("''\n");
}

else{
i++;
j++;
}



}
}
catch(Exception EXP)
{
EXP.printStackTrace();
}
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!