Re: Am I doing this right?



A Little History.. The DB has one table that gets the inserted packets and a
SQL Stored Proc gets the inserted data and places it in other table. The
capture table is PURGED Every night. The captured table gets very big each
day (spurt times)(10-100K) inserts (but purged at midnight)
Since App receives thousands of packets, as the DB gets larger, the inserts
slow down and it causes the .net receive socket to eventually PUKE if I did
a straight insert, so I immead. throw them in a queue where they can get
inserted fast as as SQL will let them. possible, leaving the receive socket
cleared.
Thanks BUC

<Buc> wrote in message news:%23WWM30KwGHA.4384@xxxxxxxxxxxxxxxxxxxxxxx
I have an simple app that pulls UDP socket packets off a network, places
that packet data in a structure, and places the structure into a vb.net
Queue (use enqueue. and dequeue). Writes queue to SQL server
In the form I have global decl.
PUBLIC DataQueue as NEW QUEUE
PUBLIC STRUCTURE myDataStruct (add some elements)

In my ONRECEIVEI place the buffer data into myDataStruct and
DataQueue.Enqueue(myDataStruct).

I also have a 100ms timer that does this:
dim tmpStruct as NEW myDataStruct
tmpStruct = DataQueue.Dequeue()
write tmpStruct to SQL
I've got a bool flag in the timer routine to keep it from running again
until it finishes everthing

Is there any kind of conflict that can occur here?
If OnReceive fires and enqueues while timer is dequeueing?
Some sort of deadlock???
I debug.writeline when enqueueing to assure what goes in the queue, but
sometimes when I dequeue the data it has a value from another packet
(scrambled), though the enqueue showed fine. Happens rarely but does
happen.
I don't quite understand how the OS executes the code, reading and writing
at what 'I guess' is the same time to that queue sometimes.
Is the scenerio above OK to use or is there a better solution (more
stable) than what I am doing?
Thanks
BUC





.



Relevant Pages

  • Re: Possible bug in .Net 2.0 udp sockets?
    ... You won't miss any UDP packets with a buffer that large! ... R> I called BeginReceiveFrom() several times on purpose, ... If you don't do that, indeed, UDP stack can drop packets. ... it stores it in the queue. ...
    (microsoft.public.dotnet.framework)
  • Re: Performance Intel Pro 1000 MT (PWLA8490MT)
    ... driver changed to not use the braindamaged sk interrupt moderation. ... with small 50-60 byte UDP packets. ... when the tx queue fills up, the application should stop sending, at ... For transmission, with non-broken hardware and software, ...
    (freebsd-performance)
  • Re: [PATCH] 3/3 maple: update bus driver to support Dreamcast VMU
    ... Removes unneeded locking of queue of processed packets while properly ... Under what conditions will this lock be ...
    (Linux-Kernel)
  • Re: packet filter : official documentation not enought, questions remain
    ... First queue set up. ... qint is for internal traffic, qext is ... queue qint bandwidth 99% priority 2 cbq ... You have NO control over inbound packets. ...
    (comp.unix.bsd.openbsd.misc)
  • Re: ipfw and ipsec processing order for outgoing packets wrong
    ... non-ACK packets but the other counters for queue 2-4 doesn't move at ... ipfw pipe show and ipfw queue show would seem normal except the Source ... >> for outgoing queues with the ACK packets having the highest priority ... > - in the very beginning, a packet that was processed by ipsec didn't ...
    (freebsd-current)