Из Википедии: Традиционно XML API являются либо:
tree based - the entire document is read into memory as a tree structure for random
access by the calling application
event based - the application registers to receive events as entities are encountered
within the source document.
StAX was designed as a median between these two opposites. In the StAX metaphor,
the programmatic entry point is a cursor that represents a point within the
document. The application moves the cursor forward - 'pulling' the information from
the parser as it needs. This is different from an event based API - such as SAX -
which 'pushes' data to the application - requiring the application to maintain state
between events as necessary to keep track of location within the document.
Так что для 100M и более - я предпочитаю SAX - если возможно, используйте вместо StAX.
Но я попробовал ваш кодс размером файла 2,6GB на JVM64.Без проблем.Поэтому я полагаю, что проблема не в размере файла, а в том, что данные могут быть.