DTrace scripts may reject to work when you try to run very large scripts with hundreds of enablings or thousands of actions.
dtrace: failed to enable './myDtraceProbe.d'' : DIF program exceeds maximum program size
Reason: The current default size for DTrace is 256K. This may be to small for some probes.
Solution 1: Increase the default size in file /etc/system. You will require to have root privileges.
Reboot the system after the change.
Disclaimer: Changes to the /etc/system file change the behavior of the entire system. Consult your system administrator upfront!
Solution 2: Set the parameter dynamically with mdb (Solaris Modular Debugger)
# mdb -kw Loading modules: [ ... ] > dtrace_dof_maxsize/E dtrace_dof_maxsize: dtrace_dof_maxsize: 262144 > dtrace_dof_maxsize/Z 0t524288 dtrace_dof_maxsize: 0x40000 = 0x80000 > dtrace_dof_max_size/E dtrace_dof_maxsize: dtrace_dof_maxsize: 524288
Disclaimer: Work with mdb is the equivalent to open heart surgery on your Solaris system. Any change has direct and system wide impact. Consider to use a /etc/system entry (see solution 1) and a reboot instead of.
The Solaris Management Facility requires manifests to take applications under its control as a service.
This is a list of known and publicly available SMF manifests for Solaris applications:
|Tivoli (storage manager client)|
|Websphere Application Server 6.1|
|Mongrel (web server)||Mongrel cluster|
|nginx (web server)||nginx|
|Excellent white paper including RBAC and projects integration for Solaris x86|
|Rails/Mongrel Cluster||Rails/mongrel_cluster||Published by Joyent|
|Redhat||JBOSS Application Server|
|SAP||ERP 6.0||SAP Community Network|
|Symantec||Veritas Storage Foundation|
|Talend||Talend Integration Suite|
|Others||TCP tuning manifest||Tunes the fairly conservative TCP parameters from Solaris 10|
Do you happen to know more SMF manifest? Please leave a comment. I''ll be glad to add them.
An example: You want to know which package /usr/ucb/whoami belongs to?
The pkgchk command will reveil all details about the file-
bash-3.00$ /usr/sbin/pkgchk -l -p /usr/ucb/whoami NOTE: Couldn't lock the package database. Pathname: /usr/ucb/whoami Type: regular file Expected mode: 0755 Expected owner: root Expected group: bin Expected file size (bytes): 5708 Expected sum(1) of contents: 49676 Expected last modification: Jan 23 03:03:26 2005 Referenced by the following packages: SUNWscpu Current status: installed
The note about the non locked database arises from the fact that the command hasn't been called with root privileges.
The non API way to find a SVR4 package a file belongs to seams to be the system file /var/sadm/install/contents. This is the place Solaris 10 tracks all installed files. Using grep on the file /var/sadm/install/contents is quite comfortable for bulk searches since the pkgchk command takes significant more time.
bash-3.00$ which whoami /usr/ucb/whoami bash-3.00$ grep /usr/ucb/whoami /var/sadm/install/contents /usr/ucb/whoami f none 0755 root bin 5708 49676 1106445806 SUNWscpu
The answer is SUNWscpu!
bash-3.00$ pkginfo SUNWscpu system SUNWscpu Source Compatibility, (Usr)
The file contents is normally readable by any user. No special privileges are required.
Warning: The file contents is the package database of the system. A corruption of this file will not allow anymore to install packages!
The new Solaris update release Solaris 10 9/10 is out. The product ships with Oracle branding and licensing and it has a new feature the "autoregistration".
I used to Virtualbox sandbox to figure out what the impact the auto registration has on a text based upgrade and and a GUI based fresh installation. Some example of the regadm command and the related service can be found at the end.
The first thing I was was a text based upgrade of an existing vanilla installation of Solaris 10 on x64. The first change it that the installer asks you to to optionally register my support information.
I have chosen this option. The next thing it wants to know is
The next steps follow as usual. The installer performs a patch analysis.
It'll be able to remove 69 patches in my case and downgrade one
The patches in question are listed below
Patch 121781 will get downgraded
Voila, my system got upgraded a good hour later.
The next thing I tried was a fresh GUI based install. The invitation to use the auto registration looks as follows:
The same information is getting gathered as before.
A summary screen shows the data gathered:
The alternative is to to register anonymously. I left all fields blank. The summary looked in this case like:
Once the system is up and running you'll find out that you got a new buddy the service autoreg will will call home to Oracle from time to time...
bash-3.00# svcs -l svc:/application/autoreg:default fmri svc:/application/autoreg:default name Solaris Auto Registration enabled true state online next_state none state_time Sat Sep 11 12:40:23 2010 logfile /var/svc/log/application-autoreg:default.log restarter svc:/system/svc/restarter:default dependency require_all/none svc:/system/filesystem/local:default (online) dependency require_all/none svc:/network/service (online) dependency require_all/none svc:/milestone/name-services (online) dependency require_all/none svc:/milestone/multi-user-server (online) dependency optional_all/none svc:/application/stosreg (online)
The registration can then be managed through the new regadm command
An anonymous registration looks as follows:
bash-3.00# regadm register Registering with My Oracle Support using username
Registered Solaris 10 Operating System Registered StarOffice 8 Office Suite Update 11 Registered StarOffice 8 Office Suite Update 11 Registration successful
The registration service can be enable, disabled and checked thorigh the regadm command as well.
bash-3.00# regadm status Solaris Auto-Registration is currently online bash-3.00# regadm disable bash-3.00# regadm status Solaris Auto-Registration is currently disabled bash-3.00# regadm enable bash-3.00# regadm status Solaris Auto-Registration is currently online
More information can be found in the Oracle online documentation.