From: LeVan,Ralph <le...@oc...> - 2002-07-17 17:41:56
|
The diagnostic returned (13) indicates that you've asked for records = out of the range of the resultSet. You've asked for records 61-81 and there = are only 60 records in the resultSet. It looks to me like you're paying attention to the number of records in the resultSet, but it would help = if that was in the log. Ralph > -----Original Message----- > From: mc...@ca... [mailto:mc...@ca...] > Sent: Wednesday, July 17, 2002 12:46 PM > To: le...@oc... > Cc: jce...@ca... > Subject: Re: Le mail du jzkit >=20 >=20 > Hi Ralph, >=20 > I'm a Bartolome Martinez partner. > We have specified a large preferredMessageSize (1M) in the=20 > initRequest. > The data retrieved depends on the server. Every server returns a=20 > different number of fragments. > I don't know what is the size returned by the server, only know how > many fragments are in the PresentResponse_type. I'd like to know how=20 > get information about the server (I tried with the initResponse, but=20 > nothing; and I don't know how to use the doScan service from=20 > Z3950Origin). >=20 > The code java that I use for the search is (more or less): >=20 > boolean finish =3D false; > int initial =3D 1; > Vector vResult =3D new Vector(); > int countRecords =3D 0; > =20 > while (!finish){ > InformationFragment frag[] =3D new InformationFragment[]{}; >=20 > PresentResponse_type presentRecord =3D=20 > s.fetchRecords(st.getTaskIdentifier(), initial, max, 150000); > int numRecReturned =3D=20 > presentRecord.numberOfRecordsReturned.intValue(); > int nextPosRec =3D presentRecord.nextResultSetPosition.intValue(); > int pstStatus =3D presentRecord.presentStatus.intValue(); > =20 > System.out.println("[Z3950Client] =3D> POS_INI: " + initial + ",=20 > NUM_RETURNED: " + numRecReturned + ", NEXT_POS: " + nextPosRec + ",=20 > STATUS: " + pstStatus); >=20 > if (numRecReturned > 0) { > frag =3D st.getFragment(initial, numRecReturned); > } >=20 > if (frag !=3D null) { > for (int i =3D 0; i < frag.length; i++) > vResultado.add(frag[i]); > } >=20 > initial =3D nextPosRec; >=20 > countRecords +=3D numRecReturned; > =20 > if (countRecords + max > numRegistros) > max =3D numRegistros - countRecords; > =20 > if (nextPosRec =3D=3D 0 || initial > st.getFragmentCount() || = initial >=20 > numRegistros)=20 > finish =3D true; > } >=20 > ... and the output is: >=20 > [Z3950Client] =3D> POS_INI: 1, NUM_RETURNED: 20, NEXT_POS: 21, = STATUS: 0 > [Z3950Client] =3D> POS_INI: 21, NUM_RETURNED: 20, NEXT_POS: 41,=20 > STATUS: 0 > [Z3950Client] =3D> POS_INI: 41, NUM_RETURNED: 20, NEXT_POS: 61,=20 > STATUS: 0 > 0 [HttpProcessor[8080][4]] WARN Z3950SearchTask - Non=20 > surrogate=20 > diagnostics [13] Additional Info : > [Z3950Client] =3D> POS_INI: 61, NUM_RETURNED: 0, NEXT_POS: 0, STATUS: = 5 >=20 > - There is a diagnostic returned; what does mean? > - After the diagnostic returned, no more registries are=20 > retrieved. How=20 > can I treat this diagnostic? And is possible to recover from=20 > it and go=20 > on with the next registries? > - Finally, where are the PresentResponse_type status defined? >=20 > Thanks in advance, >=20 > Miquel Angel Coca. >=20 > Cast Info, S.A. > http://www.cast-info.es > Tuset, 23 1=BA - 08006 Barcelona SPAIN > Tel.: (+34) 93 4456800 (ext 289), Fax: (+34) 93 4145131 > E-mail: mc...@ca...=20 >=20 > Informaci=F3n Privilegiada y Confidencial de Cast Info, S.A. > Prohibida su reproducci=F3n sin autorizaci=F3n expresa del autor. > Cast Info Privileged and Confidential Information. > Do not reproduce contents without approval of the author >=20 |