As suggested by Mark Johnson I'm evaluating a multi-kahadb setup:
        <persistenceAdapter>
        <mKahaDB directory="${activemq.base}/data/kahadb">
            <filteredPersistenceAdapters>
            <!-- kahaDB per destinations -->
            <filteredKahaDB perDestination="true">
                <persistenceAdapter>
                <kahaDB journalMaxFileLength="1mb"/>
                </persistenceAdapter>
            </filteredKahaDB>
            </filteredPersistenceAdapters>
        </mKahaDB>
        </persistenceAdapter>

But, after that, I'm facing the following warning:
2022-10-04 18:05:23,555 | WARN  | Destination name is longer than
'MaximumFileNameLength' system property, potential problem with recovery
can result from name truncation. |
org.apache.activemq.store.kahadb.MultiKahaDBPersistenceAdapter | ActiveMQ
Transport: tcp:///192.168.100.123:34926@1883

Where can I change the MaximumFileNameLength to be greater than 64
characters?
I saw this ticket related to the underlying problem, but I can't see where
to change that configuration: https://issues.apache.org/jira/browse/AMQ-4183

Att,
*Rafael Pimenta*

Em seg., 3 de out. de 2022 às 10:34, Rafael Pimenta <rafa.spime...@gmail.com>
escreveu:

> Hello Marco,
> First of All, Thanks for your reply and detailed explanation.
>
> To avoid increasing the KahaDB with DLQ queues, we disable the DLQ, so
> expired messages will be discarded automatically:
>
> <deadLetterStrategy>
>   <sharedDeadLetterStrategy processExpired="false" />
> </deadLetterStrategy>
>
> Because of that configuration, I assume that the problems fall on durable
> topics.
> As we know the number of durable topics must be created every time our
> system start, I'll study virtual topics and check if it is suitable for our
> purposes. I'll let you ASAP.
>
> Thanks!
> *Rafael Pimenta*
>
>
>
>
> Em dom., 2 de out. de 2022 às 08:08, Marco Bettiol <jamiro...@gmail.com>
> escreveu:
>
>> Hi Rafael,
>> I’m just an ActiveMQ classic user.
>>
>> I will report the behavior of ActiveMQ I experienced.
>>
>> As far as I know the ActiveMQ classic journal is composed of append only
>> files.
>> Each file should be by default 32MB in size (this can be changed, I think
>> is controlled by journalLogFileSize)
>> A journal file gets released only when ALL the messages within are
>> consumed.
>> Furthermore, messages form different queues are appended to and mixed
>> within the same file until the maximum size gets reached.
>>
>> As consequence if you have unprocessed messages (DLQ or offline consumers)
>> the used storage will increase, usually in the same order of magnitude as
>> the total traffic served by the broker: a small percentage of unconsumed
>> messages will prevent journal file cleanup.
>>
>> For example an unprocessed 1KByte message will retain 32MB on disk.
>>
>> As far as I know there is no building functionality to perform journal
>> compaction.
>>
>> In our case the developed internally a small application to offload
>> unprocessed messages to an external database/ requeue DLQ messages to the
>> same DLQ in order to free storage.
>>
>> In my experience persistent Topics are quite hard to monitor, if the list
>> of subscribers is not dynamic  (known when application starts) you could
>> think to use VirtualTopics so that you will get back to a normal queue
>> uses
>> case for each consumer.
>>
>> Regards,
>> Marc
>>
>> Il giorno gio 29 set 2022 alle ore 23:06 Rafael Pimenta <
>> rafa.spime...@gmail.com> ha scritto:
>>
>> > Hi Dears,
>> > I'm using ActiveMQ 5.15.9 and after about one month our customers
>> started
>> > to complain about the Kahadb folder increase until reaching its limit
>> and
>> > crash the system. Then they delete the folder to recover the system,
>> but we
>> > are losing data in this process.
>> > We activate the kahadb log and seems that some old messages are getting
>> > stuck for some reason and do not allow the ActiveMQ to delete the
>> db-x.log
>> > files:
>> >
>> > *2022-09-29 17:39:51,555 | TRACE | ackMessageFileMap:* {244=[244, 243],
>> > 245=[123], 246=[244, 246], 247=[246, 247], 248=[123], 249=[249, 247],
>> > 250=[163, 211, 249, 250, 234, 237], 251=[250, 243, 251, 247], 252=[140,
>> > 108, 97], 253=[249, 253, 251], 254=[253, 254], 255=[140, 141], 256=[256,
>> > 250, 251, 253, 254], 257=[256, 257], 258=[141], 259=[257, 259],
>> 260=[259,
>> > 260, 254], 261=[140], 262=[260, 262], 263=[262, 263], 264=[264, 262,
>> 254,
>> > 263], 265=[264, 265, 253], 266=[265, 249, 266, 250, 253], 267=[159],
>> > 268=[266, 268, 253, 79], 269=[259, 268, 269, 262, 254, 263], 270=[159],
>> > 271=[269, 271], 272=[272, 265, 266, 271], 273=[163], 274=[272, 274,
>> 271],
>> > 275=[274, 275], 276=[163], 277=[265, 274, 266, 275, 277], 278=[277,
>> 278],
>> > 279=[163], 280=[280, 278, 266], 281=[280, 281], 282=[281, 282],
>> 283=[159],
>> > 284=[284, 282], 285=[284, 285], 286=[174], 287=[285, 287], 288=[288,
>> 287],
>> > 289=[174], 290=[288, 290], 291=[290, 291], 292=[163], 293=[293, 291],
>> > 294=[293, 294], 295=[294, 295], 296=[296, 295], 297=[296, 297],
>> 298=[174,
>> > 159], 299=[297, 299], 300=[300, 299], 301=[180], 302=[300, 302],
>> 303=[302,
>> > 303], 304=[180], 305=[305, 303], 306=[305, 306], 307=[182], 308=[308,
>> 306,
>> > 287], 309=[308, 309], 310=[182], 311=[309, 311], 312=[312, 311],
>> 313=[312,
>> > 313], 314=[313, 314], 315=[284, 314, 315], 316=[174], 317=[317, 315],
>> > 318=[317, 318], 319=[198], 320=[320, 318], 321=[320, 321], 322=[199],
>> > 323=[321, 323], 324=[324, 323], 325=[199], 326=[272, 274, 324, 326, 278,
>> > 294, 296], 327=[326, 327], 328=[328, 327], 329=[328, 329], 330=[329,
>> 330],
>> > 331=[208], 332=[332, 330], 333=[332, 333], 334=[208], 335=[250, 251,
>> 333,
>> > 253, 335], 336=[336, 335], 337=[336, 337, 211], 338=[20], 339=[337,
>> 339],
>> > 342=[337, 342, 339], 343=[342, 343], 344=[20, 21], 345=[345, 343],
>> > 346=[345, 346], 347=[337, 345, 346, 347], 348=[348, 345, 347], 349=[348,
>> > 337, 349], 350=[349, 350], 351=[272, 337, 274, 294, 296, 350, 302, 351,
>> > 271], 352=[352, 337, 351], 353=[352, 353, 337, 285], 354=[21], 355=[353,
>> > 355], 356=[337, 274, 355, 356, 294, 299, 302], 357=[24], 358=[356, 358],
>> > 359=[358, 359], 360=[256, 272, 337, 274, 294, 359, 263, 360, 296, 265,
>> > 266], 361=[337, 274, 263, 359, 360, 361, 265, 253, 302], 362=[361, 362],
>> > 363=[360, 362, 363], 364=[364, 361, 363], 365=[24], 366=[364, 366],
>> > 367=[337, 345, 346, 366, 367, 351], 368=[21], 369=[369, 367], 370=[369,
>> > 370], 371=[28], 372=[337, 369, 370, 372, 345, 346, 351], 373=[372, 373],
>> > 374=[373, 374], 375=[374, 375], 376=[376, 345, 375, 351], 377=[376,
>> 377],
>> > 378=[369, 374, 376, 377, 345, 378, 351], 379=[28], 380=[380, 378],
>> > 381=[380, 381], 382=[28], 383=[381, 383], 384=[384, 381, 383], 385=[384,
>> > 385, 366], 386=[352, 384, 385, 386, 350, 351, 367, 383], 387=[337, 385,
>> > 386, 387, 345, 378, 348, 366, 351], 388=[388, 387], 389=[352, 384, 388,
>> > 389, 351, 383], 390=[376, 369, 380, 389, 390, 374], 391=[390, 391],
>> > 392=[34], 393=[393, 387, 389, 390, 391], 394=[393, 394], 395=[34],
>> > 396=[385, 259, 387, 390, 296, 360, 265, 394, 266, 363, 396, 366, 337,
>> 274,
>> > 243, 277, 278, 250, 284, 253], 397=[396, 397, 394], 398=[28, 34],
>> 399=[380,
>> > 397, 374, 399], 400=[400, 384, 390, 362, 380, 396, 350, 399, 351],
>> > 401=[400, 401], 402=[37], 403=[401, 403], 404=[404, 403], 405=[37, 38],
>> > 406=[404, 406], 407=[406, 407], 408=[34, 38, 39], 409=[409, 407],
>> 410=[409,
>> > 410], 411=[409, 410, 411], 412=[40, 39], 413=[413, 411], 414=[401, 409,
>> > 389, 413, 414], 415=[40], 416=[416, 414], 417=[416, 417], 418=[38],
>> > 419=[417, 419], 420=[420, 414, 419], 421=[400, 403, 420, 421], 422=[385,
>> > 419, 420, 421, 422], 423=[387, 419, 404, 420, 421, 422, 423, 394, 414],
>> > 424=[424, 419, 420, 423], 425=[424, 425], 426=[419, 404, 420, 422, 425,
>> > 426, 394, 414], 427=[426, 419, 427, 420], 428=[428, 427], 429=[400, 424,
>> > 403, 428, 429], 430=[48], 431=[419, 403, 404, 420, 424, 429, 414, 431],
>> > 432=[432, 431], 433=[48, 49], 434=[432, 434], 435=[424, 434, 435],
>> 436=[49,
>> > 51], 437=[437, 435], 438=[428, 437, 438, 431], 439=[48, 49, 51, 52, 40],
>> > 440=[438, 440], 441=[440, 441], 442=[52, 53, 21], 443=[438, 441, 443],
>> > 444=[438, 440, 443, 444], 445=[438, 444, 445], 446=[445, 446], 447=[438,
>> > 446, 447], 448=[448, 438, 440, 445, 446, 447], 449=[448, 449], 450=[53,
>> > 54], 451=[449, 451], 452=[337, 451, 419, 452, 404, 420, 438, 394, 414],
>> > 453=[49, 54, 55, 40], 454=[452, 454], 455=[454, 455], 456=[55, 57],
>> > 457=[449, 438, 455, 457, 441], 458=[457, 458], 459=[458, 459], 460=[49,
>> 53,
>> > 57, 58], 461=[437, 438, 459, 461], 462=[438, 458, 459, 461, 462],
>> 463=[58,
>> > 60], 464=[464, 462], 465=[464, 465, 459], 466=[465, 466], 467=[466,
>> 467],
>> > 468=[466, 467, 468], 469=[468, 469, 459], 470=[469, 470], 471=[470,
>> 471],
>> > 472=[471, 472], 473=[472, 473], 474=[471, 472, 473, 474], 475=[474,
>> 475],
>> > 476=[475, 476], 477=[476, 477], 478=[477, 478], 479=[34, 40, 60, 61],
>> > 480=[480, 478], 481=[480, 481], 482=[61], 483=[481, 483], 484=[483,
>> 484],
>> > 485=[64, 40], 486=[484, 486], 487=[486, 487], 488=[487, 488], 489=[64,
>> 66],
>> > 490=[488, 490], 491=[490, 491], 492=[66, 67], 493=[491, 493], 494=[493,
>> > 494], 495=[64, 67, 68], 496=[496, 464, 465, 494], 497=[496, 497, 438],
>> > 498=[497, 498], 499=[68, 70], 500=[465, 497, 498, 500, 438], 501=[500,
>> > 501], 502=[70, 71], 503=[420, 484, 501, 437, 438, 486, 503, 457, 490,
>> 459,
>> > 446], 504=[503, 504], 505=[71, 73], 506=[504, 506], 507=[506, 507],
>> > 508=[507, 508], 509=[508, 509], 510=[509, 510], 511=[510, 511],
>> 512=[512,
>> > 438, 511], 513=[73], 514=[512, 514], 515=[514, 515], 516=[76], 517=[515,
>> > 517], 518=[386, 387, 452, 517, 421, 518, 424, 459, 397, 429, 465, 500,
>> 438,
>> > 503, 506], 519=[352, 337, 437, 518, 438, 519, 345, 381, 511], 520=[519,
>> > 520], 521=[519, 520, 521], 522=[521, 522], 523=[515, 521, 522, 523],
>> > 524=[76, 77], 525=[515, 521, 522, 523, 525], 526=[514, 515, 521, 525,
>> 526],
>> > 527=[77, 79], 528=[528, 526], 529=[528, 529], 530=[79], 531=[529, 531],
>> > 532=[531, 532, 520], 533=[532, 533], 534=[533, 534], 535=[512, 517, 534,
>> > 535], 536=[81], 537=[535, 537], 538=[537, 538], 539=[81, 82, 71],
>> 540=[538,
>> > 540], 541=[540, 541], 542=[82, 83], 543=[535, 541, 543], 544=[544, 543],
>> > 545=[544, 545], 546=[83], 547=[545, 547], 548=[544, 545, 547, 531, 548,
>> > 535, 521, 538, 543], 549=[79], 550=[548, 550], 551=[548, 550, 551],
>> > 552=[97], 553=[551, 553], 554=[337, 531, 438, 535, 553, 554], 555=[97],
>> > 556=[548, 554, 538, 556], 557=[545, 556, 557], 558=[557, 558], 559=[64,
>> 68,
>> > 70], 560=[560, 544, 554, 558], 561=[560, 561], 562=[64, 82, 68, 70, 55,
>> > 105, 57], 563=[561, 563], 564=[563, 564, 537, 558], 565=[564, 565],
>> > 566=[565, 566, 556, 558], 567=[566, 567], 568=[567, 568], 569=[568,
>> 569],
>> > 570=[566, 569, 570, 558], 571=[570, 571], 572=[211], 573=[571, 573],
>> > 574=[573, 574], 575=[211, 214], 576=[576, 574], 577=[576, 544, 577, 561,
>> > 554, 557], 578=[97, 105], 579=[577, 579, 565, 566], 580=[579, 580],
>> > 581=[214], 582=[580, 582], 583=[582, 583], 584=[566, 583, 584, 558],
>> > 585=[108], 586=[566, 584, 586], 587=[108], 588=[583, 586, 588],
>> 589=[211],
>> > 590=[586, 588, 590], 591=[590, 591], 592=[211], 593=[593, 586, 591],
>> > 594=[593, 594, 586], 595=[594, 595], 596=[595, 596, 586], 597=[596,
>> 597],
>> > 598=[111], 599=[596, 597, 599, 586], 600=[597, 599, 600], 601=[597, 599,
>> > 600, 601], 602=[601, 602, 586, 588], 603=[211], 604=[583, 599, 602, 586,
>> > 604], 605=[604, 605], 606=[586, 605, 606], 607=[113, 97, 108, 111],
>> > 608=[608, 596, 599, 586, 606], 609=[608, 609], 610=[113], 611=[609, 611,
>> > 586, 588], 612=[611, 612, 583, 599, 586], 613=[608, 612, 613, 599, 600],
>> > 614=[609, 596, 613, 614, 599, 586], 615=[614, 615], 616=[608, 615, 599,
>> > 616, 600, 586], 617=[615, 616, 617], 618=[611, 613, 617, 618], 619=[618,
>> > 619], 620=[234], 621=[611, 613, 619, 621], 622=[608, 609, 611, 621,
>> 622],
>> > 623=[234], 624=[624, 608, 612, 613, 614, 615, 622], 625=[624, 625, 616,
>> > 621], 626=[234, 237], 627=[625, 627], 628=[624, 625, 627, 628, 615, 619,
>> > 622], 629=[237], 630=[628, 630], 631=[630, 631], 632=[97, 108, 79],
>> > 633=[624, 625, 630, 631, 633, 622], 634=[633, 634], 635=[599, 631, 634,
>> > 635, 621], 636=[97], 637=[635, 637], 638=[619, 637, 638, 622],
>> 639=[243]} |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,557 | TRACE |* not removing data file: 244 as
>> > contained ack(s) refer to referenced file: [244, 243] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,559 | TRACE |* not removing data file: 245 as
>> > contained ack(s) refer to referenced file: [123] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,561 | TRACE |* not removing data file: 246 as
>> > contained ack(s) refer to referenced file: [244, 246] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,563 | TRACE |* not removing data file: 247 as
>> > contained ack(s) refer to referenced file: [246, 247] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,564 | WARN  | *Stealing link for clientId
>> > TR_VP-018:30246 From Connection Transport Connection to: tcp://
>> > 172.24.96.125:42412 | org.apache.activemq.broker.region.RegionBroker |
>> > ActiveMQ Transport: tcp:///172.24.96.125:42414@1883
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 248 as
>> > contained ack(s) refer to referenced file: [123] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 249 as
>> > contained ack(s) refer to referenced file: [249, 247] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 250 as
>> > contained ack(s) refer to referenced file: [163, 211, 249, 250, 234,
>> 237] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 251 as
>> > contained ack(s) refer to referenced file: [250, 243, 251, 247] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 248 as
>> > contained ack(s) refer to referenced file: [123] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 249 as
>> > contained ack(s) refer to referenced file: [249, 247] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 250 as
>> > contained ack(s) refer to referenced file: [163, 211, 249, 250, 234,
>> 237] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 251 as
>> > contained ack(s) refer to referenced file: [250, 243, 251, 247] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 252 as
>> > contained ack(s) refer to referenced file: [140, 108, 97] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE | *not removing data file: 253 as
>> > contained ack(s) refer to referenced file: [249, 253, 251] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 254 as
>> > contained ack(s) refer to referenced file: [253, 254] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 255 as
>> > contained ack(s) refer to referenced file: [140, 141] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker not removing data file: 252 as contained ack(s) refer
>> to
>> > referenced file: [140, 108, 97] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 253 as
>> > contained ack(s) refer to referenced file: [249, 253, 251] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE | *not removing data file: 254 as
>> > contained ack(s) refer to referenced file: [253, 254] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> > *2022-09-29 17:39:51,565 | TRACE |* not removing data file: 255 as
>> > contained ack(s) refer to referenced file: [140, 141] |
>> > org.apache.activemq.store.kahadb.MessageDatabase | ActiveMQ Journal
>> > Checkpoint Worker
>> >
>> > We also use durable topics as the devices that subscribe to these topics
>> > and send MQTT messages to others work in a very bad network environment,
>> > this is the way we found to avoid data loss while offline.
>> > I think the problem is related to durable topics with offline
>> > subscriptions, but how can I confirm this assumption, eg which topics?
>> What
>> > signatures?
>> >
>> > I much appreciate any thoughts!
>> > Thanks in advance
>> >
>>
>

Reply via email to