Encapsulation vs. performance
We are creating a J2EE application with an O-R mapper to solve the persistence problems. We plan to create Java objects which encapsulate certain aspects by creating a service interface. These services use persistent objects backed by some database tables.
Now we have some decisions which need information of all kinds of services. With SQL you would do a big join over a lot of tables and get a small result. Using OO you would ask service A getting 5000 objects and merge it with the result of service B getting 6000 objects...
I don't have to mention that the OO version is unbearably slow. The SQL version is quite fast but breaks encapsulation. The writer of the query has to know the implementation details of all services.
Is there any solution? Somthing like the service provides a part of a query and the caller "joins" them with its own query?
>
Is there any solution? Somthing like the service
provides a part of a query and the caller "joins"
them with its own query?This is easy to generalize given that a service does know the attibutes.
Each attribute generates the following java properties...
class Attribute
String op1;
String op2;
Operand operand;
This is wrapped in a service type
class SingleServiceQuery
String serviceName
Collection of Attributes
class ServiceQuery
Collection of SingleServiceQuery
In the database layer you have a generalized routine to map the serviceName to the database, and attribute types and names.
You can derive this dynamically or simply insist that the service descriptor itself provide (even do it the database if you want.)
Commonality is based on common attribute names.
The query is built dynamically.
Similar Messages
-
Event handling across unrelated classes
I have a widget type of package that holds some classes that are basically JPanels with appropriate components on them. Specifically, JCheckBox, JComboBox, that kind of thing. These JPanels are used by multiple applications that describe some graphics, so one JPanel allows a user to set properties on Lines, one JPanel allows a user to set properties on Areas, that kind of thing. Several of these are put together in a JTabbedPane, which is another class in this package (this thing can be customized for what is needed).
The applications themselves use what they need for their particular thing. Here's the question. I designed this thinking that I can have these pre-created panels of what I need, and add the listeners in the application. For example, something like this:
tabbedPanePanel.getLinePanel().getColorCombo().addItemListener(new ItemListener......);
When I do this as described in the application, when the colorCombo box is changed, it doesn't trip the event (I was in debug tracing through). Obviously my design is flawed, but I don't know how to change it to make it work. There are two things I need help with improvement.
First, how can I use these re-usable widgets, when the actions are different depending on the application, and the items that the actions would affect are specific to the applications?
Second, what would a better design paradigm be for better encapsulation, and performance for these actions (item listeners and such) and the widgets themselves?
Thank you,
ValeriThink in terms of gathering data instead of actions. That is, each panel gets some user input. Put all the user input in some sort of data object, and provide a method that returns the data object. E.g. Imagine a color panel that lets the user enter R, G, and B:
public class ColorPanel extends JPanel {
// TextFields....
public Color getColor() {
// returns a color based on the values in the text fields
}It is important not to put any OK or Cancel buttons in the panels. You save the OK and Cancel buttons for another main panel that is application specific. When the OK button is pressed, you collect the data and apply it. -
IPV6 BGP and Neighbor Discovery
My understanding of IPv6 may not be accurate, so if there are any incorrect statements, please correct them.
We have a requirement that prohibits FE80::/10 addresses from passing from end sites to the provider network. FE80::/10 are the IPv6 link-local addresses. Since link-local addresses are required Neighbor Discovery Protocol, this blocks those operations that are part of it.
The sites use BGP with the provider network, so can IPv6 BGP work without link-local addresses? Is Neighbor Discovery necessary for reachability between BGP peers?(The below messgage is just to address the concern whether blocking LL breaks all ND, it does not tie into rest of BGP configuration)
Larry,
Speaking of ND only... RFC (4861) only mandates that source IP is assigned address
http://tools.ietf.org/html/rfc4861#section-4.3
It does not mandate link-local, I have not read the updated RFC.
I did a simple test with two devices with assigned IP addresses.
Spoke2#ping vrf VRF 2001:db8::1 re 1Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 2001:DB8::1, timeout is 2 seconds:!Success rate is 100 percent (1/1), round-trip min/avg/max = 9/9/9 msSpoke2#*Nov 27 13:27:43.246: IPv6-Fwd: Destination lookup for 2001:DB8::1 : i/f=Ethernet0/0, nexthop=2001:DB8::1*Nov 27 13:27:43.246: IPv6-Fwd: SAS picked source 2001:DB8::FFFF for 2001:DB8::1 (Ethernet0/0)*Nov 27 13:27:43.246: ICMPv6: Sent echo request, Src=2001:DB8::FFFF, Dst=2001:DB8::1*Nov 27 13:27:43.246: IPV6: source 2001:DB8::FFFF (local)*Nov 27 13:27:43.246: dest 2001:DB8::1 (Ethernet0/0)*Nov 27 13:27:43.246: traffic class 0, flow 0x0, len 100+0, prot 58, hops 64, originating*Nov 27 13:27:43.246: IPv6-Fwd: Created tmp mtu cache entry for 2001:DB8::FFFF 2001:DB8::1 1E000001*Nov 27 13:27:43.246: IPv6-Fwd: Encapsulation postponed, performing resolution*Nov 27 13:27:43.250: ICMPv6: Sent N-Solicit, Src=2001:DB8::FFFF, Dst=FF02::1:FF00:1*Nov 27 13:27:43.250: IPV6: source 2001:DB8::FFFF (local)*Nov 27 13:27:43.250: dest FF02::1:FF00:1 (Ethernet0/0)*Nov 27 13:27:43.250: traffic class 224, flow 0x0, len 72+0, prot 58, hops 255, originating*Nov 27 13:27:43.250: IPv6-Fwd: Sending on Ethernet0/0*Nov 27 13:27:43.255: IPv6-Fwd: Destination lookup for 2001:DB8::FFFF : Local, i/f=Ethernet0/0, nexthop=2001:DB8::FFFF*Nov 27 13:27:43.255: IPV6: source 2001:DB8::1 (Ethernet0/0)*Nov 27 13:27:43.255: dest 2001:DB8::FFFF (Ethernet0/0)Spoke2#*Nov 27 13:27:43.255: traffic class 224, flow 0x0, len 72+14, prot 58, hops 255, forward to ulp*Nov 27 13:27:43.255: ICMPv6: Received N-Advert, Src=2001:DB8::1, Dst=2001:DB8::FFFF*Nov 27 13:27:43.255: IPv6-Fwd: Sending on Ethernet0/0*Nov 27 13:27:43.255: IPv6-Fwd: Destination lookup for 2001:DB8::FFFF : Local, i/f=Ethernet0/0, nexthop=2001:DB8::FFFF*Nov 27 13:27:43.255: IPV6: source 2001:DB8::1 (Ethernet0/0)*Nov 27 13:27:43.255: dest 2001:DB8::FFFF (Ethernet0/0)*Nov 27 13:27:43.255: traffic class 0, flow 0x0, len 100+14, prot 58, hops 64, forward to ulp*Nov 27 13:27:43.255: ICMPv6: Received echo reply, Src=2001:DB8::1, Dst=2001:DB8::FFFF
M.
Message was edited by: Marcin Latosiewicz, edited for clarity. -
How do I improve performance while doing pull, push and delete from Azure Storage Queue
Hi,
I am working on a distributed application with Azure Storage Queue for message queuing. queue will be used by multiple clients across the clock and thus it is expected that it would be heavily loaded most on the time in usage. business case is typical as in
it pulls message from queue, process the message then deletes the message from queue. this module also sends back a notification to user indicating process is complete. functions/modules work fine as in they meet the logical requirement. pretty typical queue
scenario.
Now, coming to the problem statement. since it is envisaged that the queue would be heavily loaded most of the time, I am pushing towards to speed up processing of the overall message lifetime. the faster I can clear messages, the better overall experience
it would be for everyone, system and users.
To improve on performance I did multiple cycles for performance profiling and then improving on the identified "HOT" path/function.
It all came down to a point where only the Azure Queue pull and delete are the only two most time consuming calls outside. I can further improve on pull, which i did by batch pulling 32 message at a time (which is the max message count i can pull from Azure
queue at once at the time of writing this question.), this returned me a favor as in by reducing processing time to a big margin. all good till this as well.
i am processing these messages in parallel so as to improve on overall performance.
pseudo code:
//AzureQueue Class is encapsulating calls to Azure Storage Queue.
//assume nothing fancy inside, vanila calls to queue for pull/push/delete
var batchMessages = AzureQueue.Pull(32); Parallel.ForEach(batchMessages, bMessage =>
//DoSomething does some background processing;
try{DoSomething(bMessage);}
catch()
//Log exception
AzureQueue.Delete(bMessage);
With this change now, profiling results show that up-to 90% of time is only taken by the Azure Message delete calls. As it is good to delete message as soon as processing is done, i remove it just after "DoSomething" is finished.
what i need now is suggestions on how to further improve performance of this function when 90% of the time is being eaten up by the Azure Queue Delete call itself? is there a better faster way to perform delete/bulk delete etc?
with the implementation mentioned here, i get speed of close to 25 messages/sec. Right now Azure queue delete calls are choking application performance. so is there any hope to push it further.
Does it also makes difference in performance which queue delete call am making? as of now queue has overloaded method for deleting message, one which except message object and another which accepts message identifier and pop receipt. i am using the later
one here with message identifier nad pop receipt to delete message from queue.
Let me know if you need any additional information or any clarification in question.
Inputs/suggestions are welcome.
Many thanks.The first thing that came to mind was to use a parallel delete at the same time you run the work in DoSomething. If DoSomething fails, add the message back into the queue. This won't work for every application, and work that was in the queue
near the head could be pushed back to the tail, so you'd have to think about how that may effect your workload.
Or, make a threadpool queued delete after the work was successful. Fire and forget. However, if you're loading the processing at 25/sec, and 90% of time sits on the delete, you'd quickly accumulate delete calls for the threadpool until you'd
never catch up. At 70-80% duty cycle this may work, but the closer you get to always being busy could make this dangerous.
I wonder if calling the delete REST API yourself may offer any improvements. If you find the delete sets up a TCP connection each time, this may be all you need. Try to keep the connection open, or see if the REST API can delete more at a time
than the SDK API can.
Or, if you have the funds, just have more VM instances doing the work in parallel, so the first machine handles 25/sec, the second at 25/sec also - and you just live with the slow delete. If that's still not good enough, add more instances.
Darin R. -
COMMIT Performance and LUW concept in Function Calls
Hi,
I have a FM used in Web-Service comprising of around 8700 lines of code. It has, at several times, called different function modules.
My Concern:
At one point, a function module is used which creates an IBASE, which is further processed in the FM by updating its products. Earlier, BAPI_TRANSACTION_COMMIT was tried with WAIT= 'X' but the creation was not synchronous. Thus, code would not go further, as condition for ibase created failed. It means that "commit work and wait" inside the BAPI_TRANSACTION_COMMIT does not make the DB updation synchronous. Thus, a wait of 10 Seconds was put which seems to be working fine for last 6 months.
1. What did not work with BAPI_TRANSACTION_COMMIT ?
2. Does writing "commit work and wait" outside the FM BAPI_TRANSACTION_COMMIT different from writing it inside ?
3. When we move to FM call in a program, we enter a new context. Does a new dialog step is created ?? If I fire a commit work in the called FM, will it also commit the DB changes in the calling program ?
4. how much impact COMMIT WORK statement put on performance, especially when it is too frequently used, and when the data changed above is not accessed by the further code ?
5. In what condition commit work/wait upto n seconds combination becomes necessary
Regards,
Chitwanjit Singhsometimes a perforance hit it worth the maintability factor.I disagree, strongly. The developer's Prime Directive is to make the user's experience a good one. Inflicting poorly performing code on the user in the name of maintinability is not on.
Q: Why does the code have to be maintained so much?
A: Because the users' keep complaining about how slow it runs....
[SOAPBOX]
Of course in the real world things get confused and it can be quite difficult to distinguish programmers' issues - encapsulation, flexibility, maintainability - from users' issues - correctness, completeness, performance.
But the relative worth of these things is easy to assess. A highly-modular parameter driven architecture that delivers the wrong answer and takes an age to do it ain't worth jack. Even if it is so maintainable that it's easy to fix every bug in it.
[SOAPBOX]
"Whatever waits for us behind those doors, we have a better chance of survival if we stick together." Gladiator
Cheers, APC -
Hi All,
I would like to tune the following query in a better manner
SELECT hou.NAME organization_name
,haou.name parent_org_name
,msi.secondary_inventory_name sub_inventory_code
,msi.availability_type nettable_sub_inventory
,msib.segment1 item_name
,msib.description item_description
,mc.concatenated_segments category_name
,msib.primary_uom_code item_uom_code
,XXTEST_TEST_ONHAND(msib.organization_id,msib.inventory_item_id,msi.secondary_inventory_name) AVAILABLE_ONHAND
,NVL((SELECT SUM(quantity_shipped - quantity_received)
FROM rcv_shipment_lines rmlv
WHERE rmlv.to_organization_id = msib.organization_id
AND rmlv.item_id = msib.inventory_item_id
AND rmlv.to_subinventory = msi.secondary_inventory_name
AND source_document_code IN ('REQ','INVENTORY')
AND rmlv.shipment_line_status_code in ('PARTIALLY RECEIVED','EXPECTED')),0) intransit_qunatity
,msib.organization_id
,msib.inventory_item_id
,mic.category_set_id
FROM mtl_system_items_b msib
,hr_organization_units hou
,mtl_secondary_inventories msi
,mtl_item_categories mic
,mtl_categories_b_kfv mc
,per_org_structure_versions posv
,per_org_structure_elements pose
,hr_all_organization_units haou
,per_organization_structures pos
WHERE hou.organization_id = msi.organization_id
AND msib.organization_id = hou.organization_id
AND mic.inventory_item_id = msib.inventory_item_id
AND mic.organization_id = msib.organization_id
AND mc.category_id = mic.category_id
AND mic.category_set_id = FND_PROFILE.VALUE('XXTEST_INV_INVENTORY_CAT_SET')
AND pos.organization_structure_id = posv.organization_structure_id
AND posv.org_structure_version_id = pose.org_structure_version_id
AND haou.organization_id = pose.organization_id_parent
AND pos.name = FND_PROFILE.VALUE('XXTEST_INV_ORG_HIERARCHY')
AND pose.organization_id_child = msib.organization_id; Purpose :
Actually this is for creating form view , and the custom function is encapsulating a oracle apps API. We can also put the custom function in POST_QUERY of the form block. But I feel it is better to put in view itself. We are expecting that this query will fetch around 500,000 records.
Expected record count
mtl_system_items_b - less than 100,000 records
,hr_organization_units less than 1000 records
,mtl_secondary_inventories less than 1000 records
,mtl_item_categories - - less than 300,000 records
,mtl_categories_b_kfv - less than 100 records
,per_org_structure_versions less than 1000 records
,per_org_structure_elements hou less than 1000 records
,hr_all_organization_units less than 1000 records
,per_organization_structures less than 1000 records
Vesrion of DB
10.2.0.4.0Aside from what others have said, your WHERE clause isn't doing much filtering mostly joining so I would guess (only a guess) that indexes wouldn't be used.
Also, you're doing two things in the SELECT that may hurt performance, a function call and another SELECT statement.
Can you turn that inline SELECT into an outer join in the main query? What does that function call do? Can you embed the logic into your statement? Otherwise it's going to get called 500,000 times. -
VPN tunnel between 2 RRAS servers, both performing NAT with 2 network connections
I have a need to configure an IPSEC policy between 2 networks. Both servers are located at separate offices, are virtual, are 2008 R2 standard, and only perform the function of NAT between a public IP and the LAN. They each have 1 network
adapter with a public address and 1 adapter with an internal LAN address. I would like to setup an IPSEC policy between these 2 RRAS so that both LAN's can communicate.
My question's; would this be the best method to get this accomplished? If not, what are best practices? Does anyone have documentation for this type of setup?
I can create a policy between 2 servers, each behind each RRAS vm, but I'd like to keep domain controllers, AD, etc. out of this and not exposed - just have RRAS handle it.What you need to do is look for a guide to site to site VPN which you can follow. There are plenty out there of varying degrees of clarity and accuracy.
The situation briefly is that each site operates normally using its router as a NAT device to provide Internet access for the LAN. In addition, each router is configured to provide a router to router VPN link. Each router has a static route to forward
traffic for the subnet of the other site through the VPN tunnel.
The net result is that a client wanting Internet access uses NAT to give it an Internet connection. If instead the client wants to access the other site, the request is sent through the VPN tunnel. There is no confusion because Internet addresses must be
public and the site addresses are private. This is all transparent to the client because it is all handled by the routers. The client simply sends the packet to the default gateway.
The private traffic between sites is encrypted and encapsulated while it is crossing the Internet. The Internet routers see only the public address on the wrapper. The other site sees only the private IP of the packet after it has been unencapsulated
and decrypted. The two sites behave as if they were linked by an IP router, but the operation is slow because of the delay in getting the packets from site to site.
Sorry about the link. http://www.youtube.com/watch?v=m-sakEbVDQ4
Bill -
Private - encapsulation or inheritance (but not both)
Suppose that your class has some internal computation or logic that it performs, and that you wish to encapsulate this in a method that can not be called by other classes.
You provide public methods that filter, format, or somehow modify the input and/or output of this encapsulated method.
class pseudoCodeClass {
private coreLogic(Objects inputs) {
Maybe some complicated math stuff;
Or password stuff;
Or pay out functionality for a slot machine;
return(stuff);
public getUserData(inputs) {
format/check the inputs;
coreLogic(inputs);
format the output;
Now, how do you leveradge the power of OO inheritance to extend the internal logic that you encapsulated? If you make the interal logic private, then it's encapsulated, but you lose the power of OO inheritance, or you can make it protected and lose the encapsulation. I thought an OO language was supposed to have encapsulation and inheritance, not encapsulation or inheritance. (And, yes I realize that there is some techincal sense in which private methods are still inherited, but I'm talking about the general OO concept of inheritence where it includes overriding or extending.)
Suppose you want to:
class pseudoCodeSubclass extends pseudoCodeClass {
private coreLogic(inputs) {
super.coreLogic(inputs);
additional more specific code; // The whole point of OO inheritence
You can't extend super.coreLogic through your access to super.getUserData because it does all sorts of filtering and formating that is not a part of the internal logic that you wish to extend/override. And, providing other more public accessor methods to the core logic just defeats the encapsulation.
I have seen many discussions of this, but none with any answers to my satisfaction. One line of answers is that you don't want encapsulated stuff to be part of your object's contract. Some times people with this sort of answer even suggest coppying the code from the super class into the subclass. People with this sort of answer don't seem to even want the option to use inheritence because of the obligation that might go with it. But without the option of inheriting encapsulated logic, they are forced to either use cut and paste (in an OO language that seems wrong to me) or to abandon encapsulation all together. Being forced into those 2 extreems doesn't seem to me like it would simplify future support of your class, and future support seems to be the primary point of the contract line of response.
The way some people argue about this, I amost want to say - Look! In C you can encapsulate everything you want, and never have to worry about inheritance. (But you still shouldn't have to cut and paste.)
Another line of response that I have seen is that private methods should only be used in breaking up code that would have gone into a single method. In other words, the private methods aren't really 'units of program logic' they are just a mater of organizational convenience. So if you had:
public oneBigMessyMethod() {
100 lines of A;
100 lines of B;
100 lines of C;
you could maintain it as:
public oneBigMessyMethod() {
a();
b();
c();
private a() {
100 lines of A;
private b() {
100 lines of B;
private c() {
100 lines of C;
I agree private works well in this situation. Presumably since a(), b() and c() are divided up for convenience rather than because of distinct logical function, you wouldn't want to extend just a() with inheritance. But this also seems to dodge the question. Just because sometimes you might not want encapsulated functionality to be available for extention, does not mean that you would never want it. I think that I'd also have to disagree with the permise that encapsulation is only for hiding stuff that is just a convention of convenience. The main point of encapsulation is to hide information or functionality. If encapsulation is only used for the convenient breakdown of your primary functionality, then all of your primary functionality is public, package or protected. That does make it inheritable. But, now all of the primary functionality is a part of the contract for that class.
Is there an answer to this issue that does not ignore the value of either encapsulation or inheritance?
There is one way that I can see to do exactly what I think should be possible. That is to put only classes from the same hierarchy in a package. Then both package and protected effectively provide encapsulation with the ability to inherit (and you do still have the option to use private or final if there is a case where you want to disable inheritence).
What I'd like to know is - What do people actually do? In the real world, do people:
1) use private + cut and paste
2) use package/protected + self discipline
Where 2 is that you drop encapsulation within your package but then excercise self dicipline and just don't call/access stuff that you intend to be for that class only...
Or is there some 3rd thing that I'm missing? I've tried to think how maybe you could design your objects in such a way that you'd never need to inherit/extend something that you would also want to encapsulate. But I just don't see how that's possbile.
So, what do people do?
ChrisFirst of all, you have got to understand that I am not
suggesting that Private and Final should be changed or
removed from java. It looks to me like there should
be an additional access option (and there was
originaly).
I understand that if a class inherits something, it
could expand the access or put public accessor methods
around it. Obviously with ultra sensitive code this
would be a nightmare. So private and final are very
important. But if the very possibility of another
class expanding a given level of access is a reason
for not even having that level of access, then why do
we have package and protected?
There are a great number of places in common coding where that access does restrict usage in a usable way.
>
If the only re-use of your code that you allow is
through the public interface, what do you even need an
OO language for? Just for the polymorphism and a
different way to organize your code?
Not sure what you mean by that but see below.
But as I've said. I've seen this whole thing argued a
number of times. But what I haven't seen is any
explanation of what people who take the poslition that
I'm taking actually do when they write code. Because
I can sit here with a bunch of other people and say 'I
wish Java had this or that'. And then of couse a
bunch of people will resopond and say 'no that's dumb'
or 'I don't see the point'. But at the end of the
day, Java still is what it is. So, arguing about what
it 'should be' is not going to effect how anyone
codes.
Sure it can. That is why java now has assert().
So, what I started out wanting to know is how people
actually code. Particularly people who wish that Java
had a subclass only access modifier.
I don't wish that.
Perhapse I should also be asking about how things are
done by people who see this level of access as
unnececary. How they code is easy enough to
understand. Making everything that is not intended to
be accessed by any other class private is easy enough
to do. But what would be interesting to know is how
do you design your classes to leveradge inheritance if
you do this. Maybe there is some way of desinging
around ever having 'internal functionality' that you
would want to extend and I'm just not getting it.
There are three broad classifications of objects.
1. Those that only use encapsulation
2. Correct inheritence hierarchies
3. Incorrect inheritence hierarchies
The first of those, which I consider most classes to fall into, do not need this.
The third area occurs when programmers use inheritence as a convenience mechanism to propogate behavior amoung different classes rather than using encapsulation as should be done. They don't understand the difference between "is-a" relationships (design) and coding convienence. I would estimate that at least 50% of existing object hierarchies fall into this area. Since in this case the entire design is wrong an extension is not needed.
The second area is the only correct area where this might be needed. Since I personally believe that very few classes belong in hierarchies and this proposed extension would only be useful in a sub fraction of those. Since the correct usage is so small I don't think it would be useful addition to the language. -
CAT4900M and NetApp - Performance issue
Hi,
I'm struggling with a performance issue between our two NetApp Fas3170-devices.
The setup is quite simple: Each NetApp is connected via two TenGig interfaces to a CAT4900M. The 4900M's are also connected via two TenGig interfaces. Each pair of connections are bundled into an Layer2-etherchannel, configured as a dot.1q trunk. Mode is set to 'ON' on both the 4900 and the NetApp. According to NetApp documentation, this configuration is supported. Across each etherchannel, the vlans 219 and 220 are allowed. Two partitions are configured on the NetApp's, one being active in our primary datacenter and another in our secondary datacenter. Vlan219 and Vlan220 are configured for each the two partitions, using HSRP for gateway redundancy.
None of the interfaces nor the etherchannels shows any signs of misconfiguration. All links are up and etherchannels working as expected, well almost. Nothing indicates packet loss, crc-errors, Input/Output queue-drops or anything the would impact performance. Jumboframe is not configured, although this has been discussed.
The problem is, that we're unable to achieve satisfactory performance, when for instance, performing a volume copy between the two NetApp partitions. Even though we have a teoretical bandwidth of 20Gbps end-to-end, we never climb above 75-80 Mbytes of actual transfer-rate between the two NetApps. So performancewise, is almost looks as if we're "scaled" down to a 1Gig link. No QoS or other kind of ratelimiting has been implemented on the 4900's, so from a network point of view, the NetApps can go full-throttle. NetApp sw has been updated and configurations for both NetApp and 4900's have been revised by NetApp engineers and given a "clean bill of health".
The configuration for the 4900->NetApp etherchannel/interfaces is as follows:
interface TenGigabitEthernet1/5
description *** Trunk NetAPP DC1 ***
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 219,220
switchport mode trunk
udld port aggressive
channel-group 2 mode on
spanning-tree bpdufilter enable
interface TenGigabitEthernet1/6
description *** Trunk NetAPP DC1 ***
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 219,220
switchport mode trunk
udld port aggressive
channel-group 2 mode on
spanning-tree bpdufilter enable
interface Port-channel2
description *** Trunk Etherchannel DC1 ***
switchport
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 219,220
switchport mode trunk
spanning-tree bpdufilter enable
spanning-tree link-type point-to-point
Configuration for 4900->4900 interfaces/etherchannel is as follows:
interface TenGigabitEthernet1/1
description *** Site-to-Site trunk ***
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,219,220
switchport mode trunk
udld port aggressive
channel-group 1 mode on
interface TenGigabitEthernet1/2
description *** Site-to-Site trunk ***
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,219,220
switchport mode trunk
udld port aggressive
channel-group 1 mode on
interface Port-channel1
description *** Site-to-Site trunk ***
switchport
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 10,219,220
switchport mode trunk
spanning-tree link-type point-to-point
Vlan10 used for mngt-purpose.
Does anyone have similar experiences or suggestions as to why we're having theese performanceissues?
Thanks
/Ulrich
Message was edited by: UHansen1976Hi,
Thanks for your reply.
I take it, that you mean baseline performance between the two NetApp's. Well, that's really out of my hands, as another department is responsible for the NetApp's. I'm not aware of any baseline performance, nor have I seen any benchmark tests or anything, that could give me hint.
Just as you suggest, I've gone through the switch-setup systematically. Basically, starting with the physical layer and working my way up. So far, I've found nothing that would indicate a physical problem. The switchport/etherchannel setup has been verified by my peers and also verified by NetApp according to the configuration on the NetApps, as well as the various best-practice documentation availible. Futhermore, I haven't seen any signs of packets drops, crc-errors, massive re-transmissions or anything like not, neither on the switches nor the NetApps.
Recently we had a status-meeting with our NetApp-partner and it looks to me like they're persuing the logical setup on the NetApps, as the're apparently a number of settings etc. that needs adjustment. Also, we're waiting for NetApp tech-support to comment on the traces, config-dump etc. we've send to them.
/Ulrich -
Design Patterns, OO Design, and J2ME performance
Hello- I am a J2ME newbie. I am a design patterny/OO kind of guy using J2SE. I'm trying to create a facade for the business logic on a project I'm working on which will work on both J2ME and J2SE. I have come up with an acceptable design, but I am afraid that the bytecode may end up being way too large for J2ME. For example, I used the command pattern for some functionality, which results in many small Command classes, which is nice for extensibility and functional encapsulation, but creates extra bytecode. Another example is I like to throw specific business exceptions, however, those also require a separate class for each exception. Another example is I like to use TypeSafe enumerations, again, new, unnecessary classes.
I am aware of some workarounds (create a generic business exception, just put info into the message, don't use the command pattern, use bytes for non-typesafe constants), but I find myself resisting due to my hardcore OO/best practices tendencies. I guess J2ME is a whole different programming paradigm. How are you guys dealing with these issues? The most important issues with J2ME programming are small footprint and high performance, right? I guess I could write more procedural-ish code, but I am interested in any compromises that the OO guys here have come up with. Also, what size is an acceptable library/sdk in J2ME?
thanks,
AbrahamI'm not an OO guy, but I can definitely say that you'll will have to find some comprmises in your designs (the generic business exeption is a very good example).
Since you are making business apps, you do get some leeway on two issues:
* As opposed to games, where every cycle counts, for a business app maintainability and scalability are you usually more important than performance, so OO techniques will often be a better choice than a slightly faster implementation.
* You probably have more control over the devices you will be targetting. The most common limitation for MIDlet size these days is 64KB, so a library that more than 20-30KB probably won't be any good on these phones. But if you know your apps will be run on higher end phones you can make it a lot bigger, since they can often have MIDlets that are up to several MB in size.
shmoove -
Stored Procedures VS Indexed Views - Performance?
Hey folks,
In the past, one of the factors I'd consider when choosing to use a Stored Procedure over a View was the fact that the Stored Procedure would get optimized by storing the query execution path (I'm a developer so I understand this at a higher level than a
DBA would). But I've recently become aware of the fact that you can now Index your Views. This has now raised new questions for me as to when I'd get better performance out of the Indexed View versus the Stored Procedure?
Take for example the following:
SELECT colA, colB, sum(colC), sum(colD), colE
FROM myTable
WHERE colFDate < '9/30/2011'
GROUP BY colA, colB, colE
The date will be different every time it's run, so if this were a view, I wouldn't include the WHERE in the view and instead have that as part of my select against the View. If it were a stored procedure, the date would be a parameter.
If this were an Indexed View, should I expect to get better performance out of it then a stored procedure that's had an opportunity to cache the execution path? Or would the proc be faster? Or would
the difference be negligible? I know we could say "just try both out" but there are too many factors that could falsely bias the results, so I'd like to hear more of the theory behind it and what the expected outcomes are instead.
Thanks!Very cool. Thanks Dan. One question though. You said "
If you are using SQL Server Enterprise Edition, you do not need to select from the view directly. " I'm not sure what you mean here. Where would I selecting from if not from the view?
Thanks again!
What I mean is that if your query is semantically similar to the same query encapsulated in the view, the optimizer may be able to use the view index even though you specify the table in the query. For example, each of the queries below will scan
the view index in Enterprise (or Developer) edition instead of the underlying table:
CREATE VIEW dbo.vw_myTable
WITH SCHEMABINDING
AS
SELECT colFDate, colA, colB, SUM(colC) AS colC, SUM(colD) AS colD, colE, COUNT_BIG(*) AS countbig
FROM dbo.myTable
GROUP BY colA, colB, colE, colFDate
GO
CREATE UNIQUE CLUSTERED INDEX cdx_vw_myTable ON
dbo.vw_myTable(colA, colB, colE, colFDate);
GO
SELECT colA, colB, SUM(colC), SUM(colD), colE
FROM dbo.myTable
WHERE colFDate < '20110903'
GROUP BY colA, colB, colE;
GO
SELECT colA, colB, SUM(colC), SUM(colD), colE
FROM dbo.vw_myTable
WHERE colFDate < '20110903'
GROUP BY colA, colB, colE;
GO
SELECT colA, colB, SUM(colC), SUM(colD), colE
FROM dbo.vw_myTable WITH (NOEXPAND)
WHERE colFDate < '20110903'
GROUP BY colA, colB, colE;
GO
Dan Guzman, SQL Server MVP, http://www.dbdelta.com -
Cisco 871W Wireless Performance
I have a newly configured 871W router that is giving me terrible performance via wifi. Via ethernet I am getting normal 100Mbit speeds. The router is configured for 54Mbit/sec, my computer thinks it is connected at 54Mbit/sec (see attached photo).
iperf client & server output:
client:~ jsimon$ iperf -c 10.0.20.100
Client connecting to 10.0.20.100, TCP port 5001
TCP window size: 129 KByte (default)
[ 4] local 10.0.30.207 port 55307 connected with 10.0.20.100 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 20.5 MBytes 17.2 Mbits/sec
jsimon@server:~$ iperf --server
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
[ 4] local 10.0.20.100 port 5001 connected with 10.0.30.207 port 55307
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.3 sec 20.5 MBytes 16.8 Mbits/sec
See my running config:
wifi871a#show run
Building configuration...
Current configuration : 5145 bytes
version 12.4
service nagle
no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
service password-encryption
hostname wifi871a
boot-start-marker
boot-end-marker
logging message-counter syslog
logging buffered 51200 warnings
enable secret 5 $1$NJNA$p4/81Kkji2yMuC8UE21td1
no aaa new-model
crypto pki trustpoint TP-self-signed-2242084313
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-2242084313
revocation-check none
rsakeypair TP-self-signed-2242084313
crypto pki trustpoint TP-self-signed-2631278149
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-2631278149
revocation-check none
rsakeypair TP-self-signed-2631278149
crypto pki certificate chain TP-self-signed-2631278149
dot11 syslog
dot11 ssid 10fir
vlan 30
authentication open
authentication key-management wpa
guest-mode
wpa-psk ascii 7 xxxxxxxxxxxxxx
ip source-route
ip dhcp excluded-address 10.10.10.1
ip dhcp excluded-address 10.0.30.1 10.0.30.199
ip dhcp pool sdm-pool
import all
network 10.10.10.0 255.255.255.248
default-router 10.10.10.1
lease 0 2
ip dhcp pool Users
import all
network 10.0.30.0 255.255.255.0
default-router 10.0.30.1
domain-name 10fir.com
dns-server 4.2.2.2
lease 0 3
ip cef
ip domain name 10fir.com
ip name-server 8.8.8.8
ip name-server 4.2.2.2
no ipv6 cef
multilink bundle-name authenticated
archive
log config
hidekeys
bridge irb
interface FastEthernet0
switchport access vlan 30
spanning-tree portfast
interface FastEthernet1
switchport access vlan 30
interface FastEthernet2
switchport access vlan 30
spanning-tree portfast
Interface FastEthernet3
switchport access vlan 30
spanning-tree portfast
interface FastEthernet4
ip address 10.0.20.20 255.255.255.0
duplex auto
speed auto
interface Dot11Radio0
no ip address
no dot11 extension aironet
encryption mode ciphers aes-ccm
encryption vlan 30 mode ciphers aes-ccm
broadcast-key change 3600
ssid SSID
speed basic-1.0 basic-2.0 basic-5.5 6.0 9.0 basic-11.0 12.0 18.0 24.0 36.0 48.0 54.0
station-role root access-point
no cdp enable
interface Dot11Radio0.30
encapsulation dot1Q 30
no cdp enable
bridge-group 30
bridge-group 30 subscriber-loop-control
bridge-group 30 spanning-disabled
bridge-group 30 block-unknown-source
no bridge-group 30 source-learning
no bridge-group 30 unicast-flooding
interface Vlan1
description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
no ip address
ip tcp adjust-mss 1452
shutdown
interface Vlan30
description Users Network
no ip address
no ip redirects
no ip unreachables
no ip proxy-arp
ip nat inside
ip virtual-reassembly
bridge-group 30
bridge-group 30 spanning-disabled
interface BVI30
description Wifi Bridge
ip address 10.0.30.1 255.255.255.0
ip virtual-reassembly
router eigrp 10
network 10.0.0.0
no auto-summary
ip default-gateway 10.0.20.1
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 10.0.20.1
no ip http server
ip http authentication local
no ip http secure-server
ip http timeout-policy idle 5 life 86400 requests 10000
ip dns server
control-plane
bridge 30 route ip
line con 0
privilege level 15
login local
no modem enable
line aux 0
line vty 0 4
privilege level 15
login local
transport input telnet ssh
scheduler max-task-time 5000
endAlso if I setup another router on the same frequencies I get perfect performance.
Another 871W or something else.
If it's another router model, I think you need to look at this. I have a strange feeling you're hitting the limit of the hardware. Not the wireless capabilities, but the router itself. -
1310 Wireless Bridge Poor performance
Hello I am getting really bad performance on a bridge i am trying to get up,
Laptop - Switch - AIR-BR1310G-E-K9-R attena-ed ----------------
attena-ed AIR-BR1310G-E-K9-R switch laptop.
When doing an FTP Transfer i get a poor 1MB, these are currently in a lab enviroment, this is a far cry from what i am hoping for,
can anyone see an issue
show run
Building configuration...
Current configuration : 1892 bytes
version 12.3
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
hostname site1
enable secret 5 $1$XQ0Z$Fzjg/dJ/I1sY5bLjss0l4/
clock summer-time BST recurring last Sun Mar 1:00 last Sun Oct 2:00
ip subnet-zero
ip domain name xxxxxx
ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
aaa new-model
aaa authentication login xxxxx
aaa session-id common
dot11 ssid XXXXXX
max-associations 1
authentication open
authentication key-management wpa
infrastructure-ssid
wpa-psk ascii xxxxxxxxxxxxxxxxxxx
username Cisco password 7 047802150C2E
username xxxxxx
bridge irb
interface Dot11Radio0
no ip address
no ip route-cache
encryption mode ciphers tkip
encryption vlan 1 mode ciphers aes-ccm tkip
ssid xxxxx
speed basic-1.0 basic-2.0 basic-5.5 basic-6.0 basic-9.0 basic-11.0 basic-12.0 basic-18.0 basic-24.0 basic-36.0 basic-48.0 basic-54.0
no power client local
power client 50
power local cck 50
power local ofdm 30
channel 2452
station-role root bridge
cca 75
concatenation
distance 1
antenna receive right
antenna transmit right
antenna gain 13
world-mode dot11d country GB outdoor
infrastructure-client
bridge-group 1
bridge-group 1 spanning-disabled
interface FastEthernet0
no ip address
no ip route-cache
full-duplex
bridge-group 1
bridge-group 1 spanning-disabled
hold-queue 80 in
interface BVI1
ip address 192.168.1.1 255.255.255.0
no ip route-cache
ip http server
no ip http secure-server
ip http help-path http://www.cisco.com/warp/public/779/smbiz/prodconfig/help/eag
control-plane
bridge 1 route ip
line con 0
line vty 0 4
end
show run
Building configuration...
Current configuration : 1815 bytes
version 12.3
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
hostname xxxxx
enable secret 5 $1$SN2n$CLPRLRzAjlUD47jR1ugca.
clock summer-time BST recurring last Sun Mar 1:00 last Sun Oct 2:00
ip subnet-zero
ip domain name xxxxxx
ip name-server 1.1.1.1
ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
aaa new-model
aaa authentication login xxxxx
aaa session-id common
dot11 ssid xxxxx
max-associations 1
authentication open
authentication key-management wpa
infrastructure-ssid
wpa-psk ascii xxxxx
username Cisco password 7 062506324F41
username xxxxx
bridge irb
interface Dot11Radio0
no ip address
no ip route-cache
encryption mode ciphers tkip
encryption vlan 1 mode ciphers aes-ccm tkip
ssid xxxxxx
parent 1 003a.9a21.a8b0
speed basic-1.0 basic-2.0 basic-5.5 basic-6.0 basic-9.0 basic-11.0 basic-12.0 basic-18.0 basic-24.0 basic-36.0 basic-48.0 basic-54.0
station-role non-root bridge
antenna receive left
antenna transmit right
antenna gain 13
world-mode dot11d country GB outdoor
infrastructure-client
bridge-group 1
bridge-group 1 spanning-disabled
interface FastEthernet0
no ip address
no ip route-cache
full-duplex
bridge-group 1
bridge-group 1 spanning-disabled
hold-queue 80 in
interface BVI1
ip address 192.168.1.2 255.255.255.0
no ip route-cache
ip http server
no ip http secure-server
ip http help-path http://www.cisco.com/warp/public/779/smbiz/prodconfig/help/eag
control-plane
bridge 1 route ip
line con 0
line vty 0 4
end
Regards NeilHi Scott,
Yes they are very close together, about a meter to be exact,
Sorry im by no means clued up on wireless, so im guessing your after these
e#show dot11 associations all-client
Address : 003a.9a21.b4c0 Name : xxxxxx
IP Address : 192.168.1.2 Interface : Dot11Radio 0
Device : 11g-bridge Software Version : 12.3
CCX Version : NONE
State : Assoc Parent : self
SSID : xxxxxxxx VLAN : 0
Hops to Infra : 1 Association Id : 4
Clients Associated: 1 Repeaters associated: 0
Tunnel Address : 0.0.0.0
Key Mgmt type : WPA PSK Encryption : TKIP
Current Rate : 54.0 Capability : WMM ShortHdr ShortSlot
Supported Rates : 1.0 2.0 5.5 6.0 9.0 11.0 12.0 18.0 24.0 36.0 48.0 54.0
Voice Rates : disabled
Signal Strength : -31 dBm Connected for : 135 seconds
Signal to Noise : 67 dBm Activity Timeout : 30 seconds
Power-save : Off Last Activity : 0 seconds ago
Apsd DE AC(s) : NONE
Packets Input : 101726 Packets Output : 198208
Bytes Input : 10283192 Bytes Output : 257691877
Duplicates Rcvd : 0 Data Retries : 10049
Decrypt Failed : 0 RTS Retries : 0
MIC Failed : 0 MIC Missing : 0
Packets Redirected: 0 Redirect Filtered: 0
Session timeout : 0 seconds
Reauthenticate in : never
the above is after issuing the power statements
interface Dot11Radio0
no ip address
no ip route-cache
encryption mode ciphers tkip
encryption vlan 1 mode ciphers aes-ccm tkip
ssid xxxxxx
speed basic-1.0 basic-2.0 basic-5.5 basic-6.0 basic-9.0 basic-11.0 basic-12.0 basic-18.0 basic-24.0 basic-36.0 basic-48.0 basic-54.0
no power client local
power client 1
power local cck 1
power local ofdm 1
station-role root bridge
cca 75
concatenation
distance 1
antenna receive right
antenna transmit right
antenna gain 13
world-mode dot11d country GB outdoor
infrastructure-client
bridge-group 1
bridge-group 1 spanning-disabled
interface Dot11Radio0
no ip address
no ip route-cache
encryption mode ciphers tkip
encryption vlan 1 mode ciphers aes-ccm tkip
ssid xxxx
parent 1 003a.9a21.a8b0
speed basic-1.0 basic-2.0 basic-5.5 basic-6.0 basic-9.0 basic-11.0 basic-12.0 basic-18.0 basic-24.0 basic-36.0 basic-48.0 basic-54.0
no power client local
power client 1
power local cck 1
power local ofdm 1
station-role non-root bridge
antenna receive right
antenna transmit right
antenna gain 13
world-mode dot11d country GB outdoor
infrastructure-client
bridge-group 1
bridge-group 1 spanning-disabled
end
or
show int dot 0
Dot11Radio0 is up, line protocol is up
Hardware is 802.11G Radio, address is 003a.9a21.a8b0 (bia 003a.9a21.a8b0)
MTU 1500 bytes, BW 54000 Kbit, DLY 1000 usec,
reliability 255/255, txload 21/255, rxload 1/255
Encapsulation ARPA, loopback not set
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:07:23, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 36
Queueing strategy: fifo
Output queue: 0/30 (size/max)
5 minute input rate 105000 bits/sec, 224 packets/sec
5 minute output rate 4630000 bits/sec, 440 packets/sec
231658 packets input, 14164388 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
448016 packets output, 581607544 bytes, 0 underruns
16 output errors, 0 collisions, 4 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
I can serperate them by atlease 10 meters down the hallway... , What is the likely hood of actually getting 54.0 when they are deployed, Distance no more that 1Km) how do these stats look?
Neil -
I have a simple JSP page that performs a SELECT query and displays the returned results. There are only ten records being returned, yet it takes about five seconds to finish loading every time (even on reloads). The actual data is very little (literally, a few sentences), so I don't know what's causing this slow performance. Any help would be appreciated.
The code:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
<%@ include file="include/header.jspf" %>
<sql:setDataSource var="datasource"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=testDB"
user="sa" password="" />
<sql:query var="wines" dataSource="${datasource}">
SELECT categories.catcode, brand, intro, catname
FROM products, categories
WHERE products.catcode = categories.catcode
AND categories.catcode = 1
</sql:query>
<c:forEach items="${wines.rows}" var="row">
<p><c:out value="${row.catname}" /></p>
<p><c:out value="${row.brand}" /></p>
<p><c:out value="${row.intro}" /></p>
</c:forEach>
<%@ include file="include/footer.jspf" %>Not at all.
You use the alternative setDataSource argumernt, specifying a datasource, or a JNDI name for the datasource, rather than the connection info you have right now.
Yes, you have to configure a JNDI datasource on your server (not completely trivial) but once that is done, you're away laughing.
<sql:dataSource="myDataSource"/>
Examples of tomcat setup and JSTL here:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
With regards to using the JSTL sql tags, my understanding is that it is not recommended. JSPs should not include database code - that should be encapsulated in a DataAccessObject (dao). However if you DO use it (for prototyping, or small basic apps) then you should use the JNDI approach rather than specifying connection details. -
Encapsulation dot1q is not working?, 2600 Cisco router
I am trying to config a 2620 Cisco router to perform subintreface (F0/0.1) for Vlan Trunk Protocol, however when I try to configure the encapsulation dot1q, I continue to receive error massage with ^ symbol below the 'c' See below, the platform version is a 12.3(26) which should be acceptable to perform an (encapsulation dot1q). The Ethernet is a fast-Ethernet 10/100 port. I also try the ISL, I receive the same massage.
Can anyone suggest what could be the problem!!
Thank you all!!!!!
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0
Router(config-if)#no ip address
Router(config-if)#no shutdown
Router(config-if)#int f0/0.1
Router(config-subif)#encapsulation dot1q 1
^ % Invalid input detected at '^' marker. Router(config-subif)#
==================================================================================================== Router#show version
Cisco Internetwork Operating System Software IOS (tm) C2600 Software (C2600-I-M), Version 12.3(26), RELEASE SOFTWARE (fc2) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2008 by cisco Systems, Inc. Compiled Mon 17-Mar-08 15:23 by dchih ROM: System Bootstrap, Version 12.1(3r)T2, RELEASE SOFTWARE (fc1) Router uptime is 5 minutes System returned to ROM by power-on System image file is "flash:c2600-i-mz.123-26.bin" cisco 2620 (MPC860) processor (revision 0x600) with 28672K/4096K bytes of memory . Processor board ID JAD05440GAN (1508240486) M860 processor: part number 0, mask 49 Bridging software. X.25 software, Version 3.0.0. 1 FastEthernet/IEEE 802.3 interface(s) 1 Serial network interface(s) 32K bytes of non-volatile configuration memory. 8192K bytes of processor board System flash (Read/Write)
Configuration register is 0x2102
Router#
==================================================================================================
Router#sh flash
System flash directory:
File Length Name/status
1 7754580 c2600-i-mz.123-26.bin [7754644 bytes used, 633960 available, 8388604 total]
8192K bytes of processor board System flash (Read/Write)
Router#jesse rodriguez wrote:I am connected through the console, Here are the output.Router#config t Enter configuration commands, one per line. End with CNTL/Z. Router(config)# Router(config)# Router(config)#int f0/0 Router(config-if)#no ip address Router(config-if)#no shutdown Router(config-if)# *Mar 1 00:01:36.891: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state t o up Router(config-if)# Router(config-if)#int f0/0.1Router(config-subif)#enc ? % Unrecognized commandRouter(config-subif)#en? % Unrecognized command Router(config-subif)#en ? % Unrecognized command Router(config-subif)#enJesse
It's possible your feature set it not good enough to run trunking.
Trunking apparently requires a minimum of the IP PLUS feature set according to this document
http://www.cisco.com/en/US/tech/tk389/tk815/technologies_configuration_example09186a00800949fd.shtml
table 2 shows a minimum IOS of 12.0(1)T and IPPLUS/IPPLUS on the 2620 - so your IOS revision is OK, but maybe your feature set is not.
You can figure which feature set you have by going here
http://tools.cisco.com/ITDIT/CFN/Dispatch?act=rlsSelect&task=search&searchby=image
and entering your image name (assuming it's not been stuffed with) which you can find by doing "show flash" or "dir"
If you don;t have the right feature set, then you're out of luck unless you can upgrade/change the IOS image the router is booting with.
Cheers.
Maybe you are looking for
-
I'm trying to save money and realize that I don't need the full package. I wanted to just change over to photographer's pack with just Lightroom and Photoshop but I seem to be missing the way to do that through my account. Is there an easier way?
-
Hi, if we selected ' Fixed term' from contract type drop down , make Contract end date mandatory. Ex: if Contract type = ' fixed term'. Contract end date sholud be mandatory. for this I have written code in BADI Check method. For event triggering w
-
I have loaded some interdependent java classes in Oracle successfully, Not sure about how to write call specs for these as one method of class A needs an object of class B as input parameter. TIA PM
-
Compaq Presario Bios Password Error
Help!!!! I need to reset my admin password for my bios. I have the error message: System Disabled [ 51194371 ] Thanks, This question was solved. View Solution.
-
Older photoshop elements programs
Can custom print sizes be made, like on the older photoshop elements programs? I have owned Adobe Photoshop Elements 2.0 and 6, I loved working with the both of the programs! Any information would help a lot? Thank You! grantes