Hi Trustin,

Trustin Lee wrote:
On 7/24/07, Luis Neves <[EMAIL PROTECTED]> wrote:
Trustin Lee wrote:


humm... perhaps.
I've been experimenting to try to find a way to solve my problem and I've found
that if the producer sends a bunch of messages and then shuts down the
messageReceived() of the consumer keeps getting called long after the producer is dead. It looks like the messages are held in consumer internal (Mina) Queue, what I think would also help me in this particular case is the hability to specify the maximum number of messages in the consumer Queue.... right? is there
anyway to do that?

I created a JIRA issue related with the problem you are describing:

https://issues.apache.org/jira/browse/DIRMINA-405

I already have checked in the fix.  Please try the trunk and let me
know if it does the job for you.  I changed ProtocolCodecFilter not to
fire messageReceived event and to hold decoded messages until read is
resumed.

As fair as I can tell the fix doesn't seem to solve my specific problem, Mina is still accepting Messages into its internal queues after the suspendRead() call.
suspendRead() is more like suspendNotification().

Using the following code I would have expected that the "content-#" followed closely the "Consumer.getReadMessages(): #", but this is not what happens. Also, I expected the the "Producer.getScheduledWriteMessages(): #" to increase due to the read suspension of the Consumer, but of course, since the consumer accepts the message this doesn't happen.


Consumer code:

public void messageReceived(IoSession iosession, Object message) throws 
Exception
{
iosession.suspendRead();
System.out.println("Consumer.getReadMessages(): " + 
iosession.getReadMessages());
iosession.suspendRead();
System.out.println((String) message);
Thread.sleep(3000);
iosession.resumeRead();
}

Producer code:

for (int i = 0; i < 1000; i++)
{
System.out.println("Producer.getScheduledWriteMessages(): " + ioSession.getScheduledWriteMessages());
String message = "content-" + i;
System.out.println(message);
ioSession.write(message).awaitUninterruptibly();
Thread.sleep(500);
}

This is the ouput from the Consumer:

Consumer.getReadMessages(): 1
message: content-0
Consumer.getReadMessages(): 6
message: content-1
Consumer.getReadMessages(): 12
message: content-2
Consumer.getReadMessages(): 18
message: content-3
Consumer.getReadMessages(): 18
message: content-4
Consumer.getReadMessages(): 18
message: content-5
Consumer.getReadMessages(): 18
message: content-6
Consumer.getReadMessages(): 18
message: content-7
Consumer.getReadMessages(): 18
message: content-8
Consumer.getReadMessages(): 18
message: content-9
Consumer.getReadMessages(): 18
message: content-10
Consumer.getReadMessages(): 66
message: content-11
Consumer.getReadMessages(): 72
message: content-12
Consumer.getReadMessages(): 72
message: content-13
Consumer.getReadMessages(): 84
message: content-14
Consumer.getReadMessages(): 90
message: content-15
Consumer.getReadMessages(): 96
message: content-16
Consumer.getReadMessages(): 102
message: content-17
Consumer.getReadMessages(): 102
message: content-18
Consumer.getReadMessages(): 102
message: content-19
Consumer.getReadMessages(): 102
message: content-20
Consumer.getReadMessages(): 102
message: content-21
Consumer.getReadMessages(): 102
message: content-22
Consumer.getReadMessages(): 102
message: content-23
Consumer.getReadMessages(): 102
message: content-24
Consumer.getReadMessages(): 102
message: content-25
Consumer.getReadMessages(): 102
message: content-26
Consumer.getReadMessages(): 102
message: content-27
Consumer.getReadMessages(): 102
message: content-28
Consumer.getReadMessages(): 102
message: content-29
Consumer.getReadMessages(): 102
message: content-30
Consumer.getReadMessages(): 102
message: content-31
Consumer.getReadMessages(): 102
message: content-32
Consumer.getReadMessages(): 102
message: content-33
Consumer.getReadMessages(): 102
message: content-34
Consumer.getReadMessages(): 102
message: content-35
Consumer.getReadMessages(): 214
message: content-36



And this is the output of the Producer:

Producer.getScheduledWriteMessages(): 0
message: content-0
Producer.getScheduledWriteMessages(): 0
message: content-1
Producer.getScheduledWriteMessages(): 0
message: content-2
Producer.getScheduledWriteMessages(): 0
message: content-3
Producer.getScheduledWriteMessages(): 0
message: content-4
Producer.getScheduledWriteMessages(): 0
message: content-5
Producer.getScheduledWriteMessages(): 0
message: content-6
Producer.getScheduledWriteMessages(): 0
message: content-7
Producer.getScheduledWriteMessages(): 0
message: content-8
Producer.getScheduledWriteMessages(): 0
message: content-9
Producer.getScheduledWriteMessages(): 0
message: content-10
Producer.getScheduledWriteMessages(): 0
message: content-11
Producer.getScheduledWriteMessages(): 0
message: content-12
Producer.getScheduledWriteMessages(): 0
message: content-13
Producer.getScheduledWriteMessages(): 0
message: content-14
Producer.getScheduledWriteMessages(): 0
message: content-15
Producer.getScheduledWriteMessages(): 0
message: content-16
Producer.getScheduledWriteMessages(): 0
message: content-17
Producer.getScheduledWriteMessages(): 0
message: content-18
Producer.getScheduledWriteMessages(): 0
message: content-19
Producer.getScheduledWriteMessages(): 0
message: content-20
Producer.getScheduledWriteMessages(): 0
message: content-21
Producer.getScheduledWriteMessages(): 0
message: content-22
Producer.getScheduledWriteMessages(): 0
message: content-23
Producer.getScheduledWriteMessages(): 0
message: content-24
Producer.getScheduledWriteMessages(): 0
message: content-25
Producer.getScheduledWriteMessages(): 0
message: content-26
Producer.getScheduledWriteMessages(): 0
message: content-27
Producer.getScheduledWriteMessages(): 0
message: content-28
Producer.getScheduledWriteMessages(): 0
message: content-29
Producer.getScheduledWriteMessages(): 0
message: content-30
Producer.getScheduledWriteMessages(): 0
message: content-31
Producer.getScheduledWriteMessages(): 0
message: content-32
Producer.getScheduledWriteMessages(): 0
message: content-33
Producer.getScheduledWriteMessages(): 0
message: content-34
Producer.getScheduledWriteMessages(): 0
message: content-35
Producer.getScheduledWriteMessages(): 0
message: content-36
Producer.getScheduledWriteMessages(): 0
message: content-37
Producer.getScheduledWriteMessages(): 0
message: content-38
Producer.getScheduledWriteMessages(): 0
message: content-39
Producer.getScheduledWriteMessages(): 0
message: content-40
Producer.getScheduledWriteMessages(): 0
message: content-41
Producer.getScheduledWriteMessages(): 0
message: content-42
Producer.getScheduledWriteMessages(): 0
message: content-43
Producer.getScheduledWriteMessages(): 0
message: content-44
Producer.getScheduledWriteMessages(): 0
message: content-45
Producer.getScheduledWriteMessages(): 0
message: content-46
Producer.getScheduledWriteMessages(): 0
message: content-47
Producer.getScheduledWriteMessages(): 0
message: content-48
Producer.getScheduledWriteMessages(): 0
message: content-49
Producer.getScheduledWriteMessages(): 0
message: content-50
Producer.getScheduledWriteMessages(): 0
message: content-51
Producer.getScheduledWriteMessages(): 0
message: content-52
Producer.getScheduledWriteMessages(): 0
message: content-53
Producer.getScheduledWriteMessages(): 0
message: content-54
Producer.getScheduledWriteMessages(): 0
message: content-55
Producer.getScheduledWriteMessages(): 0
message: content-56
Producer.getScheduledWriteMessages(): 0
message: content-57
Producer.getScheduledWriteMessages(): 0
message: content-58
Producer.getScheduledWriteMessages(): 0
message: content-59
Producer.getScheduledWriteMessages(): 0
message: content-60
Producer.getScheduledWriteMessages(): 0
message: content-61
Producer.getScheduledWriteMessages(): 0
message: content-62
Producer.getScheduledWriteMessages(): 0
message: content-63
Producer.getScheduledWriteMessages(): 0
message: content-64
Producer.getScheduledWriteMessages(): 0
message: content-65
Producer.getScheduledWriteMessages(): 0
message: content-66
Producer.getScheduledWriteMessages(): 0
message: content-67
Producer.getScheduledWriteMessages(): 0
message: content-68
Producer.getScheduledWriteMessages(): 0
message: content-69
Producer.getScheduledWriteMessages(): 0
message: content-70
Producer.getScheduledWriteMessages(): 0
message: content-71
Producer.getScheduledWriteMessages(): 0
message: content-72
Producer.getScheduledWriteMessages(): 0
message: content-73
Producer.getScheduledWriteMessages(): 0
message: content-74
Producer.getScheduledWriteMessages(): 0
message: content-75
Producer.getScheduledWriteMessages(): 0
message: content-76
Producer.getScheduledWriteMessages(): 0
message: content-77
Producer.getScheduledWriteMessages(): 0
message: content-78
Producer.getScheduledWriteMessages(): 0
message: content-79
Producer.getScheduledWriteMessages(): 0
message: content-80
Producer.getScheduledWriteMessages(): 0
message: content-81
Producer.getScheduledWriteMessages(): 0
message: content-82
Producer.getScheduledWriteMessages(): 0
message: content-83
Producer.getScheduledWriteMessages(): 0
message: content-84
Producer.getScheduledWriteMessages(): 0
message: content-85
Producer.getScheduledWriteMessages(): 0
message: content-86
Producer.getScheduledWriteMessages(): 0
message: content-87
Producer.getScheduledWriteMessages(): 0
message: content-88
Producer.getScheduledWriteMessages(): 0
message: content-89
Producer.getScheduledWriteMessages(): 0
message: content-90
Producer.getScheduledWriteMessages(): 0
message: content-91
Producer.getScheduledWriteMessages(): 0
message: content-92
Producer.getScheduledWriteMessages(): 0
message: content-93
Producer.getScheduledWriteMessages(): 0
message: content-94
Producer.getScheduledWriteMessages(): 0
message: content-95
Producer.getScheduledWriteMessages(): 0
message: content-96
Producer.getScheduledWriteMessages(): 0
message: content-97
Producer.getScheduledWriteMessages(): 0
message: content-98
Producer.getScheduledWriteMessages(): 0
message: content-99
Producer.getScheduledWriteMessages(): 0
message: content-100
Producer.getScheduledWriteMessages(): 0
message: content-101
Producer.getScheduledWriteMessages(): 0
message: content-102
Producer.getScheduledWriteMessages(): 0
message: content-103
Producer.getScheduledWriteMessages(): 0
message: content-104
Producer.getScheduledWriteMessages(): 0
message: content-105
Producer.getScheduledWriteMessages(): 0
message: content-106
Producer.getScheduledWriteMessages(): 0
message: content-107
Producer.getScheduledWriteMessages(): 0
message: content-108
Producer.getScheduledWriteMessages(): 0
message: content-109
Producer.getScheduledWriteMessages(): 0
message: content-110
Producer.getScheduledWriteMessages(): 0
message: content-111
Producer.getScheduledWriteMessages(): 0
message: content-112
Producer.getScheduledWriteMessages(): 0
message: content-113
Producer.getScheduledWriteMessages(): 0
message: content-114
Producer.getScheduledWriteMessages(): 0
message: content-115
Producer.getScheduledWriteMessages(): 0
message: content-116
Producer.getScheduledWriteMessages(): 0
message: content-117
Producer.getScheduledWriteMessages(): 0
message: content-118
Producer.getScheduledWriteMessages(): 0
message: content-119
Producer.getScheduledWriteMessages(): 0
message: content-120
Producer.getScheduledWriteMessages(): 0
message: content-121
Producer.getScheduledWriteMessages(): 0
message: content-122
Producer.getScheduledWriteMessages(): 0
message: content-123
Producer.getScheduledWriteMessages(): 0
message: content-124
Producer.getScheduledWriteMessages(): 0
message: content-125
Producer.getScheduledWriteMessages(): 0
message: content-126
Producer.getScheduledWriteMessages(): 0
message: content-127
Producer.getScheduledWriteMessages(): 0
message: content-128
Producer.getScheduledWriteMessages(): 0
message: content-129
Producer.getScheduledWriteMessages(): 0
message: content-130
Producer.getScheduledWriteMessages(): 0
message: content-131
Producer.getScheduledWriteMessages(): 0
message: content-132
Producer.getScheduledWriteMessages(): 0
message: content-133
Producer.getScheduledWriteMessages(): 0
message: content-134
Producer.getScheduledWriteMessages(): 0
message: content-135
Producer.getScheduledWriteMessages(): 0
message: content-136
Producer.getScheduledWriteMessages(): 0
message: content-137
Producer.getScheduledWriteMessages(): 0
message: content-138
Producer.getScheduledWriteMessages(): 0
message: content-139
Producer.getScheduledWriteMessages(): 0
message: content-140
Producer.getScheduledWriteMessages(): 0
message: content-141
Producer.getScheduledWriteMessages(): 0
message: content-142
Producer.getScheduledWriteMessages(): 0
message: content-143
Producer.getScheduledWriteMessages(): 0
message: content-144
Producer.getScheduledWriteMessages(): 0
message: content-145
Producer.getScheduledWriteMessages(): 0
message: content-146
Producer.getScheduledWriteMessages(): 0
message: content-147
Producer.getScheduledWriteMessages(): 0
message: content-148
Producer.getScheduledWriteMessages(): 0
message: content-149
Producer.getScheduledWriteMessages(): 0
message: content-150
Producer.getScheduledWriteMessages(): 0
message: content-151
Producer.getScheduledWriteMessages(): 0
message: content-152
Producer.getScheduledWriteMessages(): 0
message: content-153
Producer.getScheduledWriteMessages(): 0
message: content-154
Producer.getScheduledWriteMessages(): 0
message: content-155
Producer.getScheduledWriteMessages(): 0
message: content-156
Producer.getScheduledWriteMessages(): 0
message: content-157
Producer.getScheduledWriteMessages(): 0
message: content-158
Producer.getScheduledWriteMessages(): 0
message: content-159
Producer.getScheduledWriteMessages(): 0
message: content-160
Producer.getScheduledWriteMessages(): 0
message: content-161
Producer.getScheduledWriteMessages(): 0
message: content-162
Producer.getScheduledWriteMessages(): 0
message: content-163
Producer.getScheduledWriteMessages(): 0
message: content-164
Producer.getScheduledWriteMessages(): 0
message: content-165
Producer.getScheduledWriteMessages(): 0
message: content-166
Producer.getScheduledWriteMessages(): 0
message: content-167
Producer.getScheduledWriteMessages(): 0
message: content-168
Producer.getScheduledWriteMessages(): 0
message: content-169
Producer.getScheduledWriteMessages(): 0
message: content-170
Producer.getScheduledWriteMessages(): 0
message: content-171
Producer.getScheduledWriteMessages(): 0
message: content-172
Producer.getScheduledWriteMessages(): 0
message: content-173
Producer.getScheduledWriteMessages(): 0
message: content-174
Producer.getScheduledWriteMessages(): 0
message: content-175
Producer.getScheduledWriteMessages(): 0
message: content-176
Producer.getScheduledWriteMessages(): 0
message: content-177
Producer.getScheduledWriteMessages(): 0
message: content-178
Producer.getScheduledWriteMessages(): 0
message: content-179
Producer.getScheduledWriteMessages(): 0
message: content-180
Producer.getScheduledWriteMessages(): 0
message: content-181
Producer.getScheduledWriteMessages(): 0
message: content-182
Producer.getScheduledWriteMessages(): 0
message: content-183
Producer.getScheduledWriteMessages(): 0
message: content-184
Producer.getScheduledWriteMessages(): 0
message: content-185
Producer.getScheduledWriteMessages(): 0
message: content-186
Producer.getScheduledWriteMessages(): 0
message: content-187
Producer.getScheduledWriteMessages(): 0
message: content-188
Producer.getScheduledWriteMessages(): 0
message: content-189
Producer.getScheduledWriteMessages(): 0
message: content-190
Producer.getScheduledWriteMessages(): 0
message: content-191
Producer.getScheduledWriteMessages(): 0
message: content-192
Producer.getScheduledWriteMessages(): 0
message: content-193
Producer.getScheduledWriteMessages(): 0
message: content-194
Producer.getScheduledWriteMessages(): 0
message: content-195
Producer.getScheduledWriteMessages(): 0
message: content-196
Producer.getScheduledWriteMessages(): 0
message: content-197
Producer.getScheduledWriteMessages(): 0
message: content-198
Producer.getScheduledWriteMessages(): 0
message: content-199
Producer.getScheduledWriteMessages(): 0
message: content-200
Producer.getScheduledWriteMessages(): 0
message: content-201
Producer.getScheduledWriteMessages(): 0
message: content-202
Producer.getScheduledWriteMessages(): 0
message: content-203
Producer.getScheduledWriteMessages(): 0
message: content-204
Producer.getScheduledWriteMessages(): 0
message: content-205
Producer.getScheduledWriteMessages(): 0
message: content-206
Producer.getScheduledWriteMessages(): 0
message: content-207
Producer.getScheduledWriteMessages(): 0
message: content-208
Producer.getScheduledWriteMessages(): 0
message: content-209
Producer.getScheduledWriteMessages(): 0
message: content-210
Producer.getScheduledWriteMessages(): 0
message: content-211
Producer.getScheduledWriteMessages(): 0
message: content-212
Producer.getScheduledWriteMessages(): 0
message: content-213
Producer.getScheduledWriteMessages(): 0
message: content-214


--
Luis Neves

Reply via email to