the present invention now will be described more fully hereinafter with reference to the accompanying drawings , in which preferred embodiments of the invention are shown . this invention may , however , be embodied in many different forms and should not be construed as limited to the embodiments set forth herein ; rather , these embodiments are provided so that this disclosure will be thorough and complete , and will fully convey the scope of the invention to those skilled in the art . like numbers refer to like elements throughout . as will be appreciated by one of skill in the art , the present invention may be embodied as methods or devices . accordingly , the present invention may take the form of an entirely hardware embodiment , an entirely software embodiment or an embodiment combining software and hardware aspects . the present invention is described herein with respect flowchart illustrations of embodiments or aspects of the present invention . it will be understood that each block of the flowchart illustrations , and combinations of blocks in the flowchart illustrations , can be implemented by computer program instructions . these program instructions may be provided to a processor to produce a machine , such that the instructions which execute on the processor create means for implementing the functions specified in the flowchart block or blocks . the computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions which execute on the processor provide steps for implementing the functions specified in the flowchart block or blocks . accordingly , blocks of the flowchart illustrations support combinations of means for performing the specified functions , combinations of steps for performing the specified functions and program instruction means for performing the specified functions . it will also be understood that each block of the flowchart illustrations , and combinations of blocks in the flowchart illustrations , can be implemented by special purpose hardware - based systems which perform the specified functions or steps , or combinations of special purpose hardware and computer instructions . fig1 illustrates one embodiment of the present invention in a communications environment . as seen in fig1 a data processing system 10 has multiple concurrent applications 12 , 14 and 16 executing on the processing system . these concurrent applications may take many forms known to those of skill in the art . furthermore , these applications may be associated with a single user or multiple users of the data processing system 10 . however , each of the applications 12 , 14 and 16 may generate data to be transmitted by the communications adapter 30 or receive data which is transmitted to the communications adapter 30 . this transmission and receipt of data is referred to herein as a &# 34 ; connection .&# 34 ; thus , each of the applications 12 , 14 and 16 may be considered a user of the communications adapter 30 . accordingly , as used herein the term &# 34 ; user &# 34 ; refers to any software programs which establish a connection through a communications adapter , including applications , procedures , operating systems , applets , device drivers , protocol layers or other software components known to those of skill in the art . the data processing system 10 also has a dlc layer 20 which provides access to the communications adapter 30 to the applications 12 , 14 and 16 . as is illustrated in fig1 the communications with the applications 12 , 14 and 16 may be bi - directional ( application 12 ), transmit only ( application 14 ) or receive only ( application 16 ). the communications adapter 30 includes data storage devices such as registers , random access memory or the like which provide buffers 32 in which to store data for transmission by the communications adapter , either to the dlc layer 20 or to a network . because the buffers 32 are finite in size , if too much data is received by the adapter 32 , then the adapter discards the data . communications adapters which may be utilized in the present invention include open system architecture ( osa ) adapters . the connections established between the dlc layer 20 and adapter 30 may be guaranteed bandwidth or best efforts connections . methods of establishing both guaranteed bandwidth and best efforts connections through a communications adapter are known to those of skill in the art and need not be described herein . fig1 also illustrates maximum data counters 22a and 22b . the counters 22a and 22b are associated with guaranteed bandwidth connections using the dlc layer 20 and count the amount of data in a given interval of time which is transmitted to the adapter 30 for a guaranteed bandwidth connection . fig1 further illustrates a restart connection queue 24 in the dlc layer 20 of the data processing system 10 . the restart connection queue 24 is utilized by the present invention to notify users of the restart of halted connections . connections are placed in the restart connection queue when their corresponding counter indicates that the maximum amount of data for a time interval , the maximum threshold value , has been transmitted to the adapter 30 . connections are removed from the restart connection queue 24 when users of the connections are informed that the connection has been restarted . while the present invention is described herein with respect to two counters and two concurrent guaranteed bandwidth connections , as will be appreciated by those of skill in the art , more than two guaranteed bandwidth connections may be established for an adapter 30 . furthermore , the present invention need not be limited to data processing systems having a dlc layer 20 but may be utilized with any device communicating with a communications adapter which utilizes buffers and supports guaranteed bandwidth connections . fig2 illustrates a communications adapter 30 and the allocation of buffers 32 within communications adapter 30 according to the present invention . as seen in fig2 the buffers are allocated into two pools . one pool is allocated to guaranteed bandwidth connections 42a and 42b , and the remaining buffers 40 are allocated to best efforts connections . the size of the guaranteed bandwidth connections buffer pool is based upon the number of guaranteed bandwidth connections associated with the adapter 30 . as seen in fig2 the guaranteed bandwidth pool is illustrated as divided into two groups of buffers 42a and 42b . thus , the first group 42a is associated with a first guaranteed bandwidth connection and the second group 42b is associated with a second guaranteed bandwidth connection through adapter 30 . for example , application 12 of fig1 may require a guaranteed bandwidth connection of 1 . 5 mb / sec . buffers 42a would be assigned by adapter 30 to the guaranteed bandwidth connection associated with application 12 . similarly , counter 22a in the dlc layer 20 may be associated with the guaranteed bandwidth connection . application 14 may also require a guaranteed bandwidth connection which may be 2 mb / sec . buffers 42b and counter 22b would be allocated to the guaranteed bandwidth connection associated with application 14 . finally , application 16 may require a best efforts connection through adapter 30 . the adapter 30 would then assign the best efforts buffers 40 to the connection associated with application 16 . no counter is required for best effort communications . in operation , the guaranteed bandwidth buffers 42a and 42b may expand and contract as needed . in fact , the guaranteed bandwidth buffers may even expand into the best efforts buffers if for a given interval the guaranteed bandwidth connection is over - utilized . however , the best efforts buffers 40 will not expand into the memory allocated for guaranteed bandwidth buffers as the guaranteed bandwidth buffers are reserved for guaranteed bandwidth connections . this one way expansion of the guaranteed bandwidth buffers further assures that the guaranteed bandwidth connections will not have data discarded by the communications adapter 30 . operation of one embodiment of the present invention will now be described with respect to fig3 which illustrated the operations of the dlc layer 20 of fig1 . as seen in fig3 the dlc layer 20 obtains adapter information ( block 58 of fig4 ) for the adapter 30 ( block 70 ). in the osa adapter example , when a data processing system is established as a user of osa a signal called activate sap is sent to the adapter . on the reply to this request osa provides the osa transmit capacity and the total osa capacity . this information may then be utilized as discussed below to establish the appropriate thresholds . the adapter information , along with information on the time to transmit data to the adapter is then used to determine a timer value t which establishes a predefined time interval and a maximum data count for each guaranteed bandwidth connection n i where i is the i th guaranteed bandwidth connection ( block 72 ). the maximum data count n i acts as a maximum threshold value . n i and t values are preferably selected based upon the amount of buffers allocated to the connection , the time to transmit data to the adapter and the service time for the data once it has reached the adapter . the interval t and the maximum data count n i are preferably selected so that the average queue length in the adapter ( the amount of buffers used for the connection ) does not exceed a specified percentage of the available buffers . preferably , the same t values is utilized for each guaranteed bandwidth connection of an adapter . furthermore , the value of t may be predefined in both the adapter 30 and the dlc layer 20 . however , in such a case the flexibility to handle various adapters with differing amounts of memory may be reduced . after establishing the n i and t values , the dlc layer 20 resets a counter , such as counters 22a or 22b , associated with the guaranteed bandwidth connection to zero ( block 74 ). the dlc layer 20 also notifies any users of connections in a connection restart queue 24 of the availability of the adapter for that connection ( block 74 ). such a notification may be made by transmitting a message , setting a flag , or providing a signal to indicate whether information is to be transmitted to the dlc layer for transmission to the adapter . the dlc layer 20 checks to see if a previous time interval has been expanded beyond t ( block 82 ). an interval may be expanded or contracted as a result of variations in the timer utilized to measure the interval . the maximum count n i may be adjusted to compensate for the expansion or contraction of the previous interval by modifying the maximum count proportional to the difference between the actual interval and the expected interval . thus , if the actual interval is 0 . 12 seconds and the expected interval was 0 . 1 seconds , then the maximum count may be increased by 20 percent . after notifying users and resetting the counts for the connection for a new interval , the dlc layer 20 tests to see if the adapter 30 was incorrectly utilized by a guaranteed bandwidth connection during the previous interval ( block 76 ). an adapter 30 may be under utilized for any number of reasons including insufficient data supplied to the guaranteed bandwidth connection or over - utilization of the adapter 30 by best efforts connections early in an interval . thus , for example , if the interval is established as 0 . 1 seconds and the guaranteed bandwidth connection is 1 mb / sec ., then if less than 100 kb of data were provided to the adapter 30 for the previous interval then the adapter 30 was under - utilized by the guaranteed bandwidth connection . if the guaranteed bandwidth connection was incorrectly utilized for the previous interval , then the dlc layer 20 may compensate for the incorrect utilization of the connection by modifying the value of n i for the next interval ( block 88 ). this modification may be accomplished by altering the start count of the guaranteed bandwidth connection count to reflect the incorrect utilization . for example , of n i is 100 kb and only 80 kb of utilization occurred in an interval , then the guaranteed bandwidth connection count would be reset to - 20 kb to reflect the under - utilization . however , if less than 20 kb is utilized in the next interval the total under - utilization is not carried forward into the next interval . if the resultant count is a negative value after the next interval , the connection count is not altered in the following interval and the bandwidth is , thereby , increased by the amount the value is negative . thus , the bandwidth of any one connection is limited to two times the threshold bandwidth for a given time interval . by compensating for under - utilization , the present invention better accommodates the bursty nature of the data transfer . after compensation for utilization errors or if no compensation is required , the dlc layer 20 receives the incoming data ( block 78 ) and determines if the data is for a guaranteed bandwidth connection ( block 80 ). if the data is not for guaranteed bandwidth , then the data is accepted for transmission ( block 90 ) as it is best efforts data . the dlc layer 20 then checks to see if the interval t has expired ( block 86 ) and if not receives more data ( block 78 ). if the connection is a guaranteed bandwidth connection , the dlc layer 20 tests to see if the received data would cause the maximum count to be exceeded ( block 84 ). if so , the data is not transmitted to the communications adapter 30 and the connection is suspended and placed in the restart queue 24 ( block 92 ). no further data will be transmitted to the adapter for this connection for the current interval . the user ( application ) may also be notified that the connection has been suspended by placing the connection in the restart queue 24 . the user may be responsible for assuring that the data not sent to the communications adapter is retransmitted . techniques for such retransmission are known to those of skill in the art . alternatively , the dlc layer 20 may buffer the data for later transmission . if , however , the data does not cause the maximum count to be exceeded , then the data is accepted for transmission ( block 90 ) and provided to the communications adapter 30 . as will be appreciated by those of skill in the art , the present invention provides for packets of data to be transmitted to the communications adapter 30 by the dlc layer 20 . these packets of data are typically in a predefined size for a given connection . the fixed size nature of the data packets results in the possibility that the maximum data count may not fall on a packet boundary . for example , to a guaranteed bandwidth connection is a 1 . 5 mb / sec . connection and the interval is 0 . 1 seconds , then the present invention would 150 kb per interval to be transmitted for the connection . however , if the packet size is 4 kb then the count will reach 148 kb and the next packet will cause the maximum count to be exceeded . preferably , the additional packet will not be sent to the adapter and the count will not be exceeded . however , if the additional packet is accepted and the count exceeded , on the next interval , the starting count for the connection will be adjusted to reflect the over - utilization of the connection on the previous interval and the start count could be set to 2 kb to compensate for the additional data of the previous interval . alternatively , the maximum threshold could be set to 148 kb to compensate for the additional 2 kb transmitted during the previous interval . the dlc layer 20 then determines if the interval has expired ( block 86 ). if the interval has expired , the count is reset and the users of the connections in the restart queue 24 are notified of the restart of the connection and that data will be received for those connections ( block 74 ). if the interval has not expired the operations from block 78 are repeated for the next incoming data . fig4 illustrates the operations of an adapter 30 according to the present invention . as seen in fig4 when a request for a connection is received by adapter 30 , the adapter checks to see if the request of for a guaranteed bandwidth connection ( block 50 ). if the request is not for a guaranteed bandwidth connection , then the request is processed as a standard best efforts connection and the connection is established ( block 60 ). however , if the connection request is for a guaranteed bandwidth connection , the adapter 30 checks to see if sufficient buffers are available for the connection ( block 52 ). for each guaranteed bandwidth connection the adapter 30 determines the amount of buffer space needed to hold the amount of data for a predetermined time interval ( t ) based on the guaranteed bandwidth of the connection . the amount of data required to be stored in the buffers may be expressed as b × t where b is the guaranteed bandwidth of the connection . the adapter 30 tracks the total amount of buffer space needed for all of its guaranteed bandwidth connections . when a request for a new guaranteed bandwidth connection is received by the adapter 30 , the adapter 30 determines if sufficient unallocated reserved bandwidth buffer space is available to hold the b × t amount of data for the requested connection and if not , rejects the connection request ( block 54 ). the adapter 30 may allocate up to a maximum percentage of its total buffer space to guaranteed bandwidth connections . the adapter may then allocate buffers based upon the requested guaranteed bandwidth and the time interval t . for example , if a request requests a guaranteed bandwidth of 1 mb / sec ., and the time interval is 0 . 1 seconds , then the adapter 30 may allocate one tenth of the bandwidth ( b × t ) or 100 kb of buffers to the requested connection . if the adapter 30 determines that sufficient buffer space is available for the requested connection , then the adapter adds the buffers used for the connection to the total count of allocated buffers for the adapter ( block 56 ). the adapter then establishes the connection ( block 60 ). the adapter 30 also provides to the dlc layer 20 information about the buffer allocation of the adapter and the service time of the data after it reaches the adapter ( block 58 ). in the drawings and specification , there have been disclosed typical preferred embodiments of the invention and , although specific terms are employed , they are used in a generic and descriptive sense only and not for purposes of limitation , the scope of the invention being set forth in the following claims .