Re: Out-of-Memory Handling in Long-Running / Server Applications

Erez Katz <[email protected]> Wed, 16 Apr 2008 10:03:25 +0000
Newsgroups gmane.comp.windows.devel.java.advanced
Message-ID <[email protected]>
DQoKCgoKCgpIbW0uDQp0aGUgcG9pbnQgaSB3YXMgdHJ5aW5nIHRvIG1ha2Ugd2FzIG1vbml0b3Jp
bmcgbWVtb3J5IHVzYWdlIGxldmVscyBpbiBvcmRlciB0byB0aHJvdHRsZSBiYWNrIGFuZCBmb3J0
aCB0aGUgYXBwbGljYXRpb24gYXZhaWxhYmlsaXR5IGZvciBmdXJ0aGVyIHJlcXVlc3RzIGJlZm9y
ZSBPT01FcyBhcmUgdGhyb3duLg0KDQpUaGlzIGlzIG5vdCBleGFjdGx5IHdoYXQgU29mdCBSZWZl
cmVuY2VzIGRvLiBFc3BlY2lhbGx5IG5vdCB0aGUgZm9ydGggcGFydCwgaW4gd2hpY2ggb25jZSBt
ZW1vcnkgbGV2ZWxzIGRyb3BwZWQsIGFsbG93IG1vcmUgcmVxdWVzdHMgdG8gYmUgcHJvY2Vzc2Vk
LCB1bnRpbCBtZW1vcnkgbGV2ZWxzIHJlYWNoIGEgaGlnaCBjZWlsaW5nIGFnYWluIGFuZCBzbyBv
bi4NCg0KT24gdGhlIG90aGVyIGhhbmQsIHBhc3NpdmVseSBtb25pdG9yaW5nIHRoZSBtZW1vcnkg
aGFzIGl0cyBkaXNhZHZhbnRhZ2VzLiANCg0KQnJpYW4sIGRpZCB5b3UgbWVhbnQgdXNpbmcgcmVm
ZXJlbmNlIHF1ZXVlcyBpbiBvcmRlciB0byB0ZWxsIHdoZW4gdGhlIHN5c3RlbSBpcyByZWFjaGlu
ZyBpdCdzIG1lbW9yeSBsaW1pdHM/DQoNCj4gRGF0ZTogTW9uLCAxNCBBcHIgMjAwOCAwNDozNjoy
MiArMDAwMA0KPiBGcm9tOiBicmlhbkBCTFVNRU5GRUxELU1BU08uQ09NDQo+IFN1YmplY3Q6IFJl
OiBbQURWQU5DRUQtSkFWQV0gT3V0LW9mLU1lbW9yeSBIYW5kbGluZyBpbiBMb25nLVJ1bm5pbmcg
LyBTZXJ2ZXIgQXBwbGljYXRpb25zDQo+IFRvOiBBRFZBTkNFRC1KQVZBQERJU0NVU1MuREVWRUxP
UC5DT00NCj4gDQo+IEJUVywgdGhpcyBpcyBleGVjdGx5IHdoYXQgU29mdFJlZmVyZW5jZXMgZG8u
IEknZCByYXRoZXIgdXNlIG9uZSBvZiB0aG9zZSB0aGFuIGNyZWF0ZSBteSBvd24gYWQgaG9jIHNj
aGVtZS4NCj4gDQo+IEJyaWFuIE1hc28NCj4gDQo+IFNlbnQgdmlhIEJsYWNrQmVycnkgYnkgQVQm
VA0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogICAgICAgICBFcmV6
IEthdHogPGVyZXprYXR6QEhPVE1BSUwuQ09NPg0KPiANCj4gRGF0ZTogICAgICAgICBNb24sIDE0
IEFwciAyMDA4IDAwOjA2OjAxIA0KPiBUbzpBRFZBTkNFRC1KQVZBQERJU0NVU1MuREVWRUxPUC5D
T00NCj4gU3ViamVjdDogUmU6IFtBRFZBTkNFRC1KQVZBXSBPdXQtb2YtTWVtb3J5IEhhbmRsaW5n
IGluIExvbmctUnVubmluZyAvIFNlcnZlciBBcHBsaWNhdGlvbnMNCj4gDQo+IA0KPiBUaGUgYXJ0
aWNsZQ0KPiA+ICAgICA8aHR0cDovL3d3dy5qYXZhc3BlY2lhbGlzdHMuZXUvYXJjaGl2ZS9Jc3N1
ZTA5Mi5odG1sPg0KPiBpcyBhbiBpbnRlcmVzdGluZyByZWFkLCB0aGlzIHBhcnQgZ290IG1lIHRo
aW5raW5nOg0KPiAiT3IsIHlvdSBjb3VsZCBrZWVwDQo+ICAgICBhIG5pY2UgYmlnIGNodW5rIG9m
IG1lbW9yeSBhdmFpbGFibGUgYXMgcmVzZXJ2ZSwgYW5kIHRoZW4NCj4gICAgIHJlbGVhc2UgdGhh
dCB3aGVuIHlvdSBhcmUgcnVubmluZyBsb3cgb24gbWVtb3J5LCBhbmQgc2VuZCBhDQo+ICAgICB3
YXJuaW5nIG1lc3NhZ2UgdG8gdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yLiINCj4gDQo+IFdoYXQg
SSBoYXZlIGluIG1pbmQgaXMgc29tZXRoaW5nIHJvdWdobHkgYWxvbmcgdGhlc2UgbGluZXM6DQo+
IGZpZ3VyZSBvdXQgaG93IG11Y2ggbWVtb3J5IGEgdHlwaWNhbCB0aHJlYWQgdXNlcywga2VlcCBh
IG11Y2ggYmlnZ2VyICJjaHVuayBvZiBtZW1vcnkiIGtlcHQgYXdheSwgb3Igc2ltcGx5IGRlY2lk
ZSB0aGF0IDIwJSBvZiBhdmFpbGFibGUgbWVtb3J5IGFyZSBrZXB0IGFzICJzYWZldHkiIGJ1ZmZl
ci4NCj4gDQo+IEhhdmUgYSBzZXBhcmF0ZSAid2VsbCBiZWluZyIgdGhyZWFkIHRoYXQga2VlcHMg
bW9uaXRvcmluZyB0aGUgYW1vdW50IG9mIGF2YWlsYWJsZSBtZW1vcnksIHdoZW4gYXZhaWxhYmxl
IG1lbW9yeSBsZXZlbHMgcnVucyBsb3csIHJlbGVhc2UgdGhhdCBjaHVuayAoYW5kIHNlbmQgYW4g
YWxhcm0pIGFuZCBtb3JlIGltcG9ydGFudGx5IGRvbid0IGFsbG93IGFueSBtb3JlIHRocmVhZHMg
dG8gc3RhcnQgd2l0aCBuZXcgdGFza3MgdW50aWwgb3RoZXIgdGhyZWFkcyBmaW5pc2ggYW5kIG1l
bW9yeSBsZXZlbHMgZHJvcCB0byAic2FmZSIgdmFsdWVzLA0KPiAgdGhlbiByZS10YWtlICB0aGF0
ICJjaHVuayBvZiBtZW1vcnkiLCBhbmQgc28gb24uDQo+IA0KPiBJbiBhZGRpdGlvbiB0byB0aGF0
LCAgc3RhcnQgdGhlIFZNIHdpdGggbW9yZSBtZW1vcnkgdGhhbiBwaHlzaWNhbCBSQU0sIHRoYXQg
d2F5LCBldmVuIGlmIG1lbW9yeSBydW5zIHJlYWxseSBsb3csIGJlZm9yZSB0aGUgc2FmZXR5IGJ1
ZmZlciBpcyByZWxlYXNlZCwgeW91IGp1c3QgcnVuIHRoZSByaXNrIG9mIHJlZHVjZWQgcGVyZm9y
bWFuY2UgZHVlIHRvIHN3YXBwaW5nLCBvbmNlIHRoZSBidWZmZXIgaXMgcmVsZWFzZWQgYW5kIHN5
c3RlbSBpcyB0aHJvdHRsZWQgZG93biwgaXQgZ2V0cyBhIGNoYW5jZSB0byBnbyBiYWNrIHRvIHNh
ZmUgb3BlcmF0aW9uIG1hcmdpbnMuDQo+IA0KPiBKdXN0IGEgZmV3IHRob3VnaHRzLA0KPiANCj4g
IEVyZXoNCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+ID4gRGF0ZTogU3VuLCAxMyBBcHIg
MjAwOCAxMzoxNzo1NSAtMDcwMA0KPiA+IEZyb206IHJzY2h1bHpAU09OSUMuTkVUDQo+ID4gU3Vi
amVjdDogUmU6IFtBRFZBTkNFRC1KQVZBXSBPdXQtb2YtTWVtb3J5IEhhbmRsaW5nIGluIExvbmct
UnVubmluZyAvIFNlcnZlciBBcHBsaWNhdGlvbnMNCj4gPiBUbzogQURWQU5DRUQtSkFWQUBESVND
VVNTLkRFVkVMT1AuQ09NDQo+ID4gDQo+ID4gT24gU3VuZGF5IDEzIEFwcmlsIDIwMDggMTM6MDgs
IEVuZHJlIFN0w7hsc3ZpayB3cm90ZToNCj4gPiA+IFJhbmRhbGwgUiBTY2h1bHogd3JvdGU6DQo+
ID4gPiA+IEhpLA0KPiA+ID4gPg0KPiA+ID4gPiBXaGVuIG1lbW9yeSBpcyBleGhhdXN0ZWQgaW4g
dGhlIGlubmVyIGxvb3Agb2YgdGhlIHByb2dyYW0gKHRoZSBvbmx5DQo+ID4gPiA+IHBsYWNlIGl0
J3MgZ29pbmcgdG8gaGFwcGVuKSwgSSBjYXRjaCB0aGUgT3V0T2ZNZW1vcnlFcnJvciwgcmVsZWFz
ZQ0KPiA+ID4gPiB0aGUgc3RvcmFnZSwgdHJpZ2dlciBhIEdDIChmb3JjaW5nIGl0IHdvdWxkIHNl
ZW0gZGVzaXJhYmxlLCBidXQgSSdtDQo+ID4gPiA+IG5vdCBzdXJlIGhvdyB0byBkbyB0aGF0KSBh
bmQgcmVwb3J0IHRoZSBmYWlsdXJlIGJhY2sgdXAgdGhlIGNhbGwNCj4gPiA+ID4gY2hhaW4uDQo+
ID4gPg0KPiA+ID4gSW50ZXJlc3RpbmcuDQo+ID4gPg0KPiA+ID4gLi4uDQo+ID4gPg0KPiA+ID4g
SG93ZXZlciwgSSdtIGEgYml0IHNjZXB0aWNhbCB0byB0aGlzLCBzaW5jZSBJIGJlbGlldmUgSSd2
ZSByZWFkIHRoYXQNCj4gPiA+IGFmdGVyIGEgT09NLCB5b3UnZCBiZXR0ZXIgdGhyb3cgYXdheSB0
aGUgZW50aXJlIEpWTSwgc2luY2UgaXQnbGwgYmUNCj4gPiA+IHVuc3RhYmxlIGFuZCBnZW5lcmFs
bHkgbm90IGZlZWxpbmcgYWxsIHRoYXQgZ29vZCAtIGFuZCB5b3UgbWlnaHQgZ2V0DQo+ID4gPiBh
bnkga2luZCBvZiBwcm9ibGVtcyBsYXRlciBvbi4NCj4gPiANCj4gPiBPbmUgb2YgdGhlIGJpZ2dl
c3Qgd2Vha25lc3NlcyBvZiB0aGUgc29ydHMgb2YgdGVjaG5pcXVlcyB0aGF0IHlvdSBhbmQgSSAN
Cj4gPiBhcmUgdXNpbmcgaXMgdGhhdCB0aGUgT09NIG1heSBiZSBkZWxpdmVyZWQgdG8gYW5vdGhl
ciB0aHJlYWQgKGluc3RlYWQgDQo+ID4gb2Ygb3IgaW4gYWRkaXRpb24gdG8gYmVpbmcgZGVsaXZl
cmVkIHRvIHlvdXIgb3duKS4NCj4gPiANCj4gPiBUaGUgdGVjaG5pcXVlIHByZXNlbnRlZCBpbiB0
aGUgYXJ0aWNsZSByZWZlcnJlZCB0byBieSBCdXJ0IEIuIGxvb2tzIGdvb2QgDQo+ID4gdG8gbWUs
IGFuZCBJJ20gaW4gdGhlIHByb2Nlc3Mgb2YgaW1wbGVtZW50aW5nIGl0IGluIG15IGFwcGxpY2F0
aW9uIG5vdy4NCj4gPiANCj4gPiAgICAgPGh0dHA6Ly93d3cuamF2YXNwZWNpYWxpc3RzLmV1L2Fy
Y2hpdmUvSXNzdWUwOTIuaHRtbD4NCj4gPiANCj4gPiANCj4gPiA+ICAgIEFueW9uZSBoYXZlIGFu
eSBpbmZvcm1hdGlvbiAocG9pbnRlcnMpIGFib3V0IHRoaXM/DQo+ID4gPg0KPiA+ID4gRW5kcmUu
DQo+ID4gDQo+ID4gDQo+ID4gUmFuZGFsbCBTY2h1bHoNCj4gPiANCj4gPiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+IFRoaXMgbGlzdCBpcyBob3N0ZWQgYnkgRGV2ZWxv
cE1lbnRvcu+/vSAgaHR0cDovL3d3dy5kZXZlbG9wLmNvbQ0KPiA+IA0KPiA+IFZpZXcgYXJjaGl2
ZXMgYW5kIG1hbmFnZSB5b3VyIHN1YnNjcmlwdGlvbihzKSBhdCBodHRwOi8vZGlzY3Vzcy5kZXZl
bG9wLmNvbQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18NCj4gQ29ubmVjdCB0byB0aGUgbmV4dCBnZW5lcmF0aW9u
IG9mIE1TTiBNZXNzZW5nZXIgDQo+IGh0dHA6Ly9pbWFnaW5lLW1zbi5jb20vbWVzc2VuZ2VyL2xh
dW5jaDgwL2RlZmF1bHQuYXNweD9sb2NhbGU9ZW4tdXMmc291cmNlPXdsbWFpbHRhZ2xpbmUNCg0K
R2V0IG5ld3MsIGVudGVydGFpbm1lbnQgYW5kIGV2ZXJ5dGhpbmcgeW91IGNhcmUgYWJvdXQgYXQg
TGl2ZS5jb20uIENoZWNrIGl0IG91dCEKDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRGlzY292ZXIgdGhlIG5ldyBXaW5k
b3dzIFZpc3RhDQpodHRwOi8vc2VhcmNoLm1zbi5jb20vcmVzdWx0cy5hc3B4P3E9d2luZG93cyt2
aXN0YSZta3Q9ZW4tVVMmZm9ybT1RQlJF