irreproducible errors

User 870ab5b546

29-09-2014 01:41:00

In times of very high use (like 200 students working an assignment due the next day), Reactor or Standardizer sometimes gives irreproducible exceptions, like:


Sep 28, 2014 9:22:38 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: SynthOneRxn: Exception when trying to parse reference synthesis. Array index out of range:
7
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7
at chemaxon.struc.MoleculeGraph.getAtom(MoleculeGraph.java:2568)
at chemaxon.reaction.ReactionSearcher.exclude(ReactionSearcher.java:443)
at chemaxon.reaction.ReactionSearcher.find(ReactionSearcher.java:414)
at chemaxon.reaction.ReactionSearcher.find(ReactionSearcher.java:349)
at chemaxon.reaction.ReactionPerformer.reactOne(ReactionPerformer.java:751)
at chemaxon.reaction.ReactionPerformer.reactTransform(ReactionPerformer.java:793)
at chemaxon.reaction.ReactionPerformer.react(ReactionPerformer.java:640)
at chemaxon.standardizer.advancedactions.TransformAction.processReaction(TransformAction.j
ava:303)
at chemaxon.standardizer.advancedactions.TransformAction.standardize1(TransformAction.java
:251)
at chemaxon.standardizer.AbstractStandardizerAction.standardize(AbstractStandardizerAction
.java:157)
at chemaxon.standardizer.runner.BasicStandardizerRunner$1.standardize(BasicStandardizerRun
ner.java:134)
at chemaxon.standardizer.runner.BasicStandardizerRunner$1.run(BasicStandardizerRunner.java
:96)
at chemaxon.standardizer.runner.BasicStandardizerRunner.standardizeAndWait(BasicStandardiz
erRunner.java:266)
at chemaxon.standardizer.Standardizer.standardize(Standardizer.java:374)
at com.epoch.chem.Normalize.normalizeNoClone(Normalize.java:167)
at com.epoch.chem.Normalize.normalizeNoClone(Normalize.java:124)
at com.epoch.chem.Normalize.normalize(Normalize.java:83)
at com.epoch.synthesis.SynthStage.normalizeAll(SynthStage.java:319)
at com.epoch.synthesis.SynthStage.getNormalizedMols(SynthStage.java:302)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1202)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1187)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1187)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1187)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1187)
at com.epoch.synthesis.SynthStage.oneStepIs(SynthStage.java:1187)
at com.epoch.synthesis.Synthesis.oneStepIs(Synthesis.java:633)
at com.epoch.evals.impl.chemEvals.synthEvals.SynthOneRxn.isResponseMatching(SynthOneRxn.ja
va:111)
at com.epoch.evals.Subevaluator.isResponseMatching(Subevaluator.java:119)
at com.epoch.evals.Evaluator.matchResponse(Evaluator.java:246)
at com.epoch.qBank.Question.evaluateResponse(Question.java:1139)
at com.epoch.session.HWSession.submitResponse(HWSession.java:932)
at org.apache.jsp.homework.answerframe_jsp._jspService(answerframe_jsp.java:582)

If I or the student resubmits the response that elicited the error, the exception doesn't reoccur. I'm not sure whether this is a problem with Standardizer or Reactor, but it only seems to happen with syntheses like the following one. Any ideas?


<?xml version="1.0" encoding="windows-1252"?>
<cml xmlns="http://www.chemaxon.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.chemaxon.com/marvin/schema/mrvSchema_14_8_4.xsd" version="ChemAxon file format v14.8.4, generated by v14.9.8.0">
<MDocument>
<MRectangle id="o1">
<MPoint x="-7.699999809265137" y="6.063750267028809"/>
<MPoint x="4.5718748569488525" y="6.063750267028809"/>
<MPoint x="4.5718748569488525" y="-1.6362500190734863"/>
<MPoint x="-7.699999809265137" y="-1.6362500190734863"/>
</MRectangle>
<MRectangle id="o2">
<MPoint x="-22.131999969482422" y="5.763999938964844"/>
<MPoint x="-13.815999984741211" y="5.763999938964844"/>
<MPoint x="-13.815999984741211" y="-7.52400016784668"/>
<MPoint x="-22.131999969482422" y="-7.52400016784668"/>
</MRectangle>
<MRectangle id="o3">
<MPoint x="2.7720000743865967" y="-4.179999828338623"/>
<MPoint x="14.607999801635742" y="-4.179999828338623"/>
<MPoint x="14.607999801635742" y="-17.336000442504883"/>
<MPoint x="2.7720000743865967" y="-17.336000442504883"/>
</MRectangle>
<MRectangle id="o4">
<MPoint x="-7.303999900817871" y="-5.71999979019165"/>
<MPoint x="2.4639999866485596" y="-5.71999979019165"/>
<MPoint x="2.4639999866485596" y="-15.708000183105469"/>
<MPoint x="-7.303999900817871" y="-15.708000183105469"/>
</MRectangle>
<MRectangle id="o5">
<MPoint x="-17.973999977111816" y="-7.52400016784668"/>
<MPoint x="-7.788000106811523" y="-7.52400016784668"/>
<MPoint x="-7.788000106811523" y="-15.928000450134277"/>
<MPoint x="-17.973999977111816" y="-15.928000450134277"/>
</MRectangle>
<MRectangle id="o6">
<MPoint x="-29.61199951171875" y="-8.184000015258789"/>
<MPoint x="-20.724000930786133" y="-8.184000015258789"/>
<MPoint x="-20.724000930786133" y="-17.643999099731445"/>
<MPoint x="-29.61199951171875" y="-17.643999099731445"/>
</MRectangle>
<MRectangle id="o7">
<MPoint x="-26.92799949645996" y="6.688000202178955"/>
<MPoint x="-22.440000534057617" y="6.688000202178955"/>
<MPoint x="-22.440000534057617" y="-1.3639999628067017"/>
<MPoint x="-26.92799949645996" y="-1.3639999628067017"/>
</MRectangle>
<MTextBox id="o8" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">1</Field>
<MPoint x="-26.75200080871582" y="6.335999965667725"/>
<MPoint x="-26.13599967956543" y="6.335999965667725"/>
<MPoint x="-26.13599967956543" y="5.368000030517578"/>
<MPoint x="-26.75200080871582" y="5.368000030517578"/>
</MTextBox>
<MTextBox id="o9" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">2</Field>
<MPoint x="-22.176000595092773" y="5.4120001792907715"/>
<MPoint x="-21.076000213623047" y="5.4120001792907715"/>
<MPoint x="-21.076000213623047" y="4.26800012588501"/>
<MPoint x="-22.176000595092773" y="4.26800012588501"/>
</MTextBox>
<MTextBox id="o10" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">3</Field>
<MPoint x="-29.347999572753906" y="-8.359999656677246"/>
<MPoint x="-28.908000946044922" y="-8.359999656677246"/>
<MPoint x="-28.908000946044922" y="-9.680000305175781"/>
<MPoint x="-29.347999572753906" y="-9.680000305175781"/>
</MTextBox>
<MTextBox id="o11" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">4</Field>
<MPoint x="-17.86400032043457" y="-7.920000076293945"/>
<MPoint x="-17.072000503540036" y="-7.920000076293948"/>
<MPoint x="-17.072000503540036" y="-8.690000076293948"/>
<MPoint x="-17.864000320434563" y="-8.690000076293948"/>
</MTextBox>
<MTextBox id="o12" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">5</Field>
<MPoint x="-7.084000110626221" y="-6.0279998779296875"/>
<MPoint x="-6.0279998779296875" y="-6.0279998779296875"/>
<MPoint x="-6.0279998779296875" y="-7.171999931335449"/>
<MPoint x="-7.084000110626221" y="-7.171999931335449"/>
</MTextBox>
<MTextBox id="o13" toption="NOROT" fontScale="10.0" halign="LEFT" valign="TOP" autoSize="false">
<Field name="text">6</Field>
<MPoint x="3.299999952316284" y="-4.576000213623047"/>
<MPoint x="4.223999977111816" y="-4.576000213623047"/>
<MPoint x="4.223999977111816" y="-5.763999938964844"/>
<MPoint x="3.299999952316284" y="-5.763999938964844"/>
</MTextBox>
<MPolyline id="o14" headLength="0.6" headWidth="0.4">
<MPoint x="-23.055999755859375" y="-0.527999997138977"/>
<MPoint x="-20.808121273502664" y="-0.5279999971389764"/>
</MPolyline>
<MPolyline id="o15" headLength="0.6" headWidth="0.4">
<MPoint x="-21.29599952697754" y="-6.423999786376953"/>
<MPoint x="-21.98117716189541" y="-8.98111753210032"/>
</MPolyline>
<MPolyline id="o16" headLength="0.6" headWidth="0.4">
<MPoint x="-21.868000030517578" y="-9.944000244140625"/>
<MPoint x="-16.066688515032332" y="-8.389543508524977"/>
</MPolyline>
<MPolyline id="o17" headLength="0.6" headWidth="0.4">
<MPoint x="-8.843999862670898" y="-9.107999801635742"/>
<MPoint x="-6.156755907639548" y="-11.795243756667094"/>
</MPolyline>
<MPolyline id="o18" headLength="0.6" headWidth="0.4">
<MPoint x="1.8480000495910645" y="-14.255999565124512"/>
<MPoint x="4.389547308230124" y="-11.714452306485452"/>
</MPolyline>
<MPolyline id="o19" headLength="0.6" headWidth="0.4">
<MRectanglePoint pos="5" rectRef="o13"/>
<MPoint x="3.0816003772455134" y="-0.9065067270465504"/>
</MPolyline>
<MChemicalStruct>
<molecule molID="m1">
<propertyList>
<property dictRef="reactionIds" title="reactionIds">
<scalar><![CDATA[182;105;64;65;68;106]]></scalar>
</property>
</propertyList>
<atomArray atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34 a35 a36 a37 a38 a39 a40 a41 a42 a43 a44 a45 a46 a47 a48 a49 a50 a51 a52 a53 a54 a55 a56 a57 a58 a59 a60 a61 a62 a63 a64 a65 a66 a67 a68 a69 a70 a71 a72 a73 a74 a75 a76 a77 a78 a79 a80 a81 a82 a83 a84 a85 a86 a87 a88 a89 a90 a91 a92 a93 a94 a95 a96 a97 a98 a99" elementType="C C C C C C C C C C C C C C C C C C C C C C R C C C C C C Cl R C C C C C C B O O C C C C C C C C C C C C N C C C C C C C C C C C C R C C C C C C C C C C C C Cl C C C C C C C C C C C C C C C C N R O O" formalCharge="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -1 0" sgroupRef="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sg1 0 0 0 0 0 0 0 sg2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sg3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sg4 0 0" x2="-0.03388447792626433 -1.5738612986538942 -2.3512010545092585 -1.5885639896369903 -0.04858716890935962 0.7287525869460039 -3.8911777677874806 -4.653831826873086 -4.668500421980092 -6.193808754801656 -6.971131623644622 -6.208477564559018 0.7361155220737359 2.276115522073736 3.0461155220737366 3.0461155220737366 -24.243999481201172 -25.57766882224943 -25.57766882224943 -24.243999481201172 -22.910330140152915 -22.910330140152915 -24.642580810659055 -17.336000442504883 -18.66966978355314 -18.66966978355314 -17.336000442504883 -16.002331101456626 -16.002331101456626 -14.66865197962859 -20.00335379569037 -20.020000457763672 -21.35366979881193 -21.35366979881193 -20.020000457763672 -18.686331116715415 -18.686331116715415 -17.19880534423025 -15.865126222402216 -16.428805344230252 -15.663999557495117 -16.997668898543374 -16.997668898543374 -15.663999557495117 -14.330330216446859 -14.330330216446859 -12.996646204309625 -12.996616862293068 -11.662903508139282 -10.329219496002048 -10.329248838018605 -11.662962192172392 -8.995579496970347 -5.104000091552734 -6.437669432600993 -6.437669432600993 -5.104000091552734 -3.770330750504476 -3.770330750504476 -2.436646738367245 -2.4366173963506874 -1.1029040421969007 0.2307799699403299 0.23075062792377388 -1.1029627262300137 1.5644199689720315 6.4679999351501465 5.134330594101888 5.134330594101888 6.4679999351501465 7.801669276198405 7.801669276198405 9.135353288335637 9.135382630352193 10.46909598450598 11.80277999664321 11.802750654626655 10.46903730047287 13.13642977645469 6.335999965667725 7.424944408695008 6.335999965667725 8.964944408695008 -27.234646660899372 -28.56831600194763 -28.56831600194763 -27.234646660899372 -25.900977319851116 -25.900977319851116 -24.567293307713882 -24.56726396569733 -23.233550611543542 -21.89986659940631 -21.89989594142287 -23.23360929557665 -27.234646660899372 10.504944408695007 -25.90096753907134 -25.694646660899373" y2="2.6245948576876175 2.6330442139720174 1.3035904693993299 -0.03431263145775995 -0.042761987742160085 1.2866917568305285 1.312059386732992 2.6499528003352264 -0.017365109535582915 2.658382595569005 1.3289189772005436 -0.008974436401695388 3.9582739795156527 3.9582739795156527 2.624594857687617 5.2919531013436885 3.4760338706276634 2.706016930068623 1.165983048950542 0.39596610839150137 1.165983048950542 2.706016930068623 4.963559643112827 3.0800338429711083 2.310016902412068 0.7699830212939868 -3.39192650538056E-5 0.7699830212939868 2.310016902412068 3.080016902412068 3.0800084320859575 -1.759966071198203 -2.5299830117572437 -4.070016892875325 -4.840033833434365 -4.070016892875325 -2.5299830117572437 -4.468598222333206 -3.698598222333206 -5.802277344161242 -9.723966057846763 -10.493982998405803 -12.034016879523884 -12.804033820082925 -12.034016879523884 -10.493982998405803 -12.804008409197776 -14.344008408918244 -15.114016878964822 -14.344025349290932 -12.804025349570464 -12.034016879523884 -12.034008409011422 -7.78796618754647 -8.55798312810551 -10.098017009223591 -10.868033949782632 -10.098017009223591 -8.55798312810551 -10.868008538897483 -12.40800853861795 -13.178017008664531 -12.40802547899064 -10.868025479270171 -10.098017009223593 -10.098008538711131 -6.77596610362313 -7.5459830441821705 -9.086016925300251 -9.856033865859292 -9.086016925300251 -7.5459830441821705 -9.856008454974143 -11.396008454694611 -12.16601692474119 -11.396025395067298 -9.85602539534683 -9.08601692530025 -9.08602539534683 -13.772000312805176 -14.86094475583246 -15.949889198859744 -14.86094475583246 -11.037191773770374 -11.807208714329413 -13.347242595447497 -14.117259536006536 -13.347242595447497 -11.807208714329413 -14.117234125121385 -15.65723412484185 -16.42724259488843 -15.657251065214542 -14.117251065494074 -13.347242595447497 -9.673191491482775 -14.86094475583246 -8.903191491482776 -9.673191491482775"/>
<bondArray>
<bond id="b1" atomRefs2="a1 a2" order="1"/>
<bond id="b2" atomRefs2="a1 a6" order="2"/>
<bond id="b3" atomRefs2="a2 a3" order="2"/>
<bond id="b4" atomRefs2="a3 a4" order="1"/>
<bond id="b5" atomRefs2="a4 a5" order="2"/>
<bond id="b6" atomRefs2="a5 a6" order="1"/>
<bond id="b7" atomRefs2="a3 a7" order="1"/>
<bond id="b8" atomRefs2="a8 a10" order="2"/>
<bond id="b9" atomRefs2="a8 a7" order="1"/>
<bond id="b10" atomRefs2="a9 a7" order="2"/>
<bond id="b11" atomRefs2="a12 a9" order="1"/>
<bond id="b12" atomRefs2="a10 a11" order="1"/>
<bond id="b13" atomRefs2="a11 a12" order="2"/>
<bond id="b14" atomRefs2="a1 a13" order="1"/>
<bond id="b15" atomRefs2="a13 a14" order="1"/>
<bond id="b16" atomRefs2="a14 a15" order="1"/>
<bond id="b17" atomRefs2="a14 a16" order="1"/>
<bond id="b18" atomRefs2="a17 a18" order="1"/>
<bond id="b19" atomRefs2="a18 a19" order="2"/>
<bond id="b20" atomRefs2="a19 a20" order="1"/>
<bond id="b21" atomRefs2="a20 a21" order="2"/>
<bond id="b22" atomRefs2="a21 a22" order="1"/>
<bond id="b23" atomRefs2="a17 a22" order="2"/>
<bond id="b24" atomRefs2="a17 a23" order="1"/>
<bond id="b25" atomRefs2="a24 a25" order="1"/>
<bond id="b26" atomRefs2="a25 a26" order="2"/>
<bond id="b27" atomRefs2="a26 a27" order="1"/>
<bond id="b28" atomRefs2="a27 a28" order="2"/>
<bond id="b29" atomRefs2="a28 a29" order="1"/>
<bond id="b30" atomRefs2="a24 a29" order="2"/>
<bond id="b31" atomRefs2="a29 a30" order="1"/>
<bond id="b32" atomRefs2="a25 a31" order="1"/>
<bond id="b33" atomRefs2="a32 a33" order="1"/>
<bond id="b34" atomRefs2="a33 a34" order="2"/>
<bond id="b35" atomRefs2="a34 a35" order="1"/>
<bond id="b36" atomRefs2="a35 a36" order="2"/>
<bond id="b37" atomRefs2="a36 a37" order="1"/>
<bond id="b38" atomRefs2="a32 a37" order="2"/>
<bond id="b39" atomRefs2="a36 a38" order="1"/>
<bond id="b40" atomRefs2="a38 a39" order="1"/>
<bond id="b41" atomRefs2="a38 a40" order="1"/>
<bond id="b42" atomRefs2="a41 a42" order="1"/>
<bond id="b43" atomRefs2="a42 a43" order="2"/>
<bond id="b44" atomRefs2="a43 a44" order="1"/>
<bond id="b45" atomRefs2="a44 a45" order="2"/>
<bond id="b46" atomRefs2="a45 a46" order="1"/>
<bond id="b47" atomRefs2="a41 a46" order="2"/>
<bond id="b48" atomRefs2="a48 a49" order="2"/>
<bond id="b49" atomRefs2="a49 a50" order="1"/>
<bond id="b50" atomRefs2="a50 a51" order="2"/>
<bond id="b51" atomRefs2="a51 a52" order="1"/>
<bond id="b52" atomRefs2="a47 a48" order="1"/>
<bond id="b53" atomRefs2="a47 a52" order="2"/>
<bond id="b54" atomRefs2="a45 a47" order="1"/>
<bond id="b55" atomRefs2="a51 a53" order="1"/>
<bond id="b56" atomRefs2="a54 a55" order="1"/>
<bond id="b57" atomRefs2="a55 a56" order="2"/>
<bond id="b58" atomRefs2="a56 a57" order="1"/>
<bond id="b59" atomRefs2="a57 a58" order="2"/>
<bond id="b60" atomRefs2="a58 a59" order="1"/>
<bond id="b61" atomRefs2="a54 a59" order="2"/>
<bond id="b62" atomRefs2="a61 a62" order="2"/>
<bond id="b63" atomRefs2="a62 a63" order="1"/>
<bond id="b64" atomRefs2="a63 a64" order="2"/>
<bond id="b65" atomRefs2="a64 a65" order="1"/>
<bond id="b66" atomRefs2="a60 a61" order="1"/>
<bond id="b67" atomRefs2="a60 a65" order="2"/>
<bond id="b68" atomRefs2="a58 a60" order="1"/>
<bond id="b69" atomRefs2="a64 a66" order="1"/>
<bond id="b70" atomRefs2="a67 a68" order="1"/>
<bond id="b71" atomRefs2="a68 a69" order="2"/>
<bond id="b72" atomRefs2="a69 a70" order="1"/>
<bond id="b73" atomRefs2="a70 a71" order="2"/>
<bond id="b74" atomRefs2="a71 a72" order="1"/>
<bond id="b75" atomRefs2="a67 a72" order="2"/>
<bond id="b76" atomRefs2="a74 a75" order="2"/>
<bond id="b77" atomRefs2="a75 a76" order="1"/>
<bond id="b78" atomRefs2="a76 a77" order="2"/>
<bond id="b79" atomRefs2="a77 a78" order="1"/>
<bond id="b80" atomRefs2="a73 a74" order="1"/>
<bond id="b81" atomRefs2="a73 a78" order="2"/>
<bond id="b82" atomRefs2="a71 a73" order="1"/>
<bond id="b83" atomRefs2="a77 a79" order="1"/>
<bond id="b84" atomRefs2="a80 a81" order="1"/>
<bond id="b85" atomRefs2="a81 a82" order="1"/>
<bond id="b86" atomRefs2="a81 a83" order="1"/>
<bond id="b87" atomRefs2="a84 a85" order="1"/>
<bond id="b88" atomRefs2="a85 a86" order="2"/>
<bond id="b89" atomRefs2="a86 a87" order="1"/>
<bond id="b90" atomRefs2="a87 a88" order="2"/>
<bond id="b91" atomRefs2="a88 a89" order="1"/>
<bond id="b92" atomRefs2="a84 a89" order="2"/>
<bond id="b93" atomRefs2="a91 a92" order="2"/>
<bond id="b94" atomRefs2="a92 a93" order="1"/>
<bond id="b95" atomRefs2="a93 a94" order="2"/>
<bond id="b96" atomRefs2="a94 a95" order="1"/>
<bond id="b97" atomRefs2="a90 a91" order="1"/>
<bond id="b98" atomRefs2="a90 a95" order="2"/>
<bond id="b99" atomRefs2="a88 a90" order="1"/>
<bond id="b100" atomRefs2="a84 a96" order="1"/>
<bond id="b101" atomRefs2="a83 a97" order="1"/>
<bond id="b102" atomRefs2="a96 a98" order="1"/>
<bond id="b103" atomRefs2="a96 a99" order="2"/>
</bondArray>
<molecule id="sg1" role="SuperatomSgroup" title="NO2" leftName="O2N" molID="m2">
<atomArray atomID="a100 a101 a102" elementType="N O O" formalCharge="1 -1 0" attachmentPoint="1 0 0" sgroupAttachmentPoint="1 0 0" x2="-25.479170425804007 -25.87775175526189 -26.568114868831287" y2="35.78873440204112 34.30120862955596 36.8776788450684"/>
<bondArray>
<bond id="b104" atomRefs2="a100 a101" order="1"/>
<bond id="b105" atomRefs2="a100 a102" order="2"/>
</bondArray>
<AttachmentPointArray>
<attachmentPoint atom="a100" order="1" bond="b24"/>
</AttachmentPointArray>
</molecule>
<molecule id="sg2" role="SuperatomSgroup" title="NO2" leftName="O2N" molID="m3">
<atomArray atomID="a103 a104 a105" elementType="N O O" formalCharge="1 -1 0" attachmentPoint="1 0 0" sgroupAttachmentPoint="1 0 0" x2="-38.147210006198115 -37.37720153590307 -39.68721000616706" y2="20.488059948065786 19.154385716600743 20.488050167393595"/>
<bondArray>
<bond id="b106" atomRefs2="a103 a104" order="1"/>
<bond id="b107" atomRefs2="a103 a105" order="2"/>
</bondArray>
<AttachmentPointArray>
<attachmentPoint atom="a103" order="1" bond="b32"/>
</AttachmentPointArray>
</molecule>
<molecule id="sg3" role="SuperatomSgroup" title="N2" leftName="N2" molID="m4">
<atomArray atomID="a106 a107" elementType="N N" formalCharge="1 0" attachmentPoint="1 0" sgroupAttachmentPoint="1 0" x2="-4.736381433600725 -3.4027120925524668" y2="-1.1864777317906592 -0.41646079123161894"/>
<bondArray>
<bond id="b108" atomRefs2="a107 a106" order="3"/>
</bondArray>
<AttachmentPointArray>
<attachmentPoint atom="a106" order="1" bond="b69"/>
</AttachmentPointArray>
</molecule>
<molecule id="sg4" role="SuperatomSgroup" title="SnMe3" leftName="Me3Sn" molID="m5">
<atomArray atomID="a108 a109 a110 a111" elementType="Sn C C C" attachmentPoint="1 0 0 0" sgroupAttachmentPoint="1 0 0 0" x2="7.424944408695007 6.654944408695004 6.654944408695004 8.964944408695006" y2="-14.860944755832458 -16.19462387766049 -13.527265634004426 -14.86094475583246"/>
<bondArray>
<bond id="b109" atomRefs2="a109 a108" order="1"/>
<bond id="b110" atomRefs2="a108 a110" order="1"/>
<bond id="b111" atomRefs2="a108 a111" order="1"/>
</bondArray>
<AttachmentPointArray>
<attachmentPoint atom="a108" order="1" bond="b101"/>
</AttachmentPointArray>
</molecule>
</molecule>
</MChemicalStruct>
</MDocument>
</cml>

User 870ab5b546

29-09-2014 11:44:30

Well, last night the system became completely unresponsive to students submitting responses. I'm attaching the logs. You can see the most severe problems begin at about 11:20 pm on 28 Sep and continue until the server is rebooted at about 7:20 am on 29 Sep.


Here's an idea: we use a single, application-wide Standardizer object to standardize molecules. Could access to this object be affecting our performance adversely at high usage?

ChemAxon e08c317633

29-09-2014 13:45:56

We need more information.


What is the input molecule for Standardizer? Is it the attached synthesis?


Could you attach the standardizer configuration file?


What is the JChem version and Java version you use?

User 870ab5b546

29-09-2014 13:51:53

The configuration file is:


<?xml version="1.0" encoding="UTF-8"?>
<!-- Standardizer configuration file -->

<StandardizerConfiguration Version ="0.1">
<Actions>
<Transformation ID="S_or_Se_ylide_double"
Structure="[#16,#34;++:1]-[#34,#16,#8,#7,#6;-:2]>>[#16,#34;+:1]=[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="S_or_Se_ylide_double"
Structure="[#16,#34;+:1]-[#34,#16,#8,#7,#6;-:2]>>[#16,#34;0:1]=[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="S_or_Se_ylide_triple"
Structure="[#16,#34;++:1]=[#34,#16,#8,#7,#6;-:2]>>[#16,#34;+:1]#[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="S_or_Se_ylide_triple"
Structure="[#16,#34;+:1]=[#34,#16,#8,#7,#6;-:2]>>[#16,#34;0:1]#[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="N_or_P_or_As_ylide_double"
Structure="[#7,#15,#33;+:1]-[#34,#16,#8,#7,#6;-:2]>>[#7,#15,#33;0:1]=[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="N_or_P_or_As_ylide_triple"
Structure="[#7,#15,#33;+:1]=[#34,#16,#8,#7,#6;-:2]>>[#7,#15,#33;0:1]#[#34,#16,#8,#7,#6:2]"/>
<Transformation ID="N_or_P_or_As_dianion_ylide_double"
Structure="[#7,#15,#33;+:1]-[#34,#16,#8,#7,#6;--:2]>>[#7,#15,#33;0:1]=[#34,#16,#8,#7,#6;-:2]"/>
</Actions>
</StandardizerConfiguration>

There are a large number of input molecules for Standardizer. The one I attached is one example, but there are many more examples in the logs that I posted. 


Using JChem 14.9.8.0 and Java 1.6.0_26.


Do you think that I may solve the problem if I construct a new Standardizer object from the configuration file every time I need to do a standardization? Rather than using a single system-wide object to standardize every molecule?

ChemAxon e08c317633

29-09-2014 14:34:03










bobgr wrote:

Do you think that I may solve the problem if I construct a new Standardizer object from the configuration file every time I need to do a standardization? Rather than using a single system-wide object to standardize every molecule?



Yes, you should definitely do something like that.


I don't know how your application works, but usually there is no need to create a separate a Standardizer object for each molecule, it's enough to have a standardizer object for each thread. I recommend to create a "master" standardizer object, and then use the 


public Standardizer(Standardizer standardizer)


constructor to initialize a new standardizer object based on the existing "master" standardizer object when it is required (it's more efficient to call this constructor compared to calling a constructor which reads the configuration file).


 




 


Is your web application based on the Spring framework? If it is, then you could create a Standardizer bean, and set the bean scope to something else than singleton (based on your application requirements). Same should work with other web application frameworks as well.

User 870ab5b546

29-09-2014 22:28:27

Thanks. We now create one systemwide Standardizer, and then we copy it and use the copy each time we need to standardize a molecule, as you suggested. We'll see if it helps with our load problems.


Do we need to synchronize the construction of the copy?

ChemAxon e08c317633

01-10-2014 09:57:34










bobgr wrote:

Do we need to synchronize the construction of the copy?



No, there is no need to synchronize the construction.


Let us know if it works.